正则表达式分割字符串的问题

我想对字符串“1,2,,,'3,4',5”,实现分割结果为['1','2',‘’,‘’,‘3,4’,'5']

请教正则表达式该怎么写


============================================================

我自己用正则实现的,php代码:


var_dump(preg_split("/[,]?'([^']+)'[,]?|[,]+?/", "1,2,6,7,,'3,4',5,8,9", 0, PREG_SPLIT_DELIM_CAPTURE));

结果:


array(9) {

  [0]=>

  string(1) "1"

  [1]=>

  string(1) "2"

  [2]=>

  string(1) "6"

  [3]=>

  string(1) "7"

  [4]=>

  string(0) ""

  [5]=>

  string(3) "3,4"

  [6]=>

  string(1) "5"

  [7]=>

  string(1) "8"

  [8]=>

  string(1) "9"

}

不知道这样是否有问题


慕斯王
浏览 479回答 4
4回答

蝴蝶刀刀

不会用正则,但这个问题可以用split()var str = "1,2,,,'3,4',5";str.split(",");

holdtom

提供一个思路:var str = "1,2,,,'3,4',5";// 这里先利用正则将字符串 '3,4' 中的 `,` 先换成其他字符,如 `*`,然后再做 `split` 最后再检查每个元素里的 `*`,将它换回来var temp = str.replace(/'(\w)+,(\w)+'/, '$1*$2').split(','); str = temp.map(function(n){  return n.replace(/\*/, ',');});希望有所帮助~ :)

MMTTMM

('.*')|[^,]这样,试试!图片描述
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java