Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中使用正则表达式拆分字符串上的逗号_Javascript_Regex_Split - Fatal编程技术网

在JavaScript中使用正则表达式拆分字符串上的逗号

在JavaScript中使用正则表达式拆分字符串上的逗号,javascript,regex,split,Javascript,Regex,Split,我是正则表达式的初学者。我需要你的建议 我想用逗号分割字符串,逗号在正则表达式的两个单引号之外 正则表达式模式:,(?=([^']*'[^']*')*[^']*$) 字符串输入:“'2017-10-16 10:44:43.0000000',Abc',de',0',无” 预期输出:[“'2017-10-16 10:44:43.0000000'”、'Abc'、'de'、'0'、'None'”]有一个包含4个元素的数组 目前,我在正则表达式中使用split方法,它在JAVA上运行良好。 现在我必须用J

我是正则表达式的初学者。我需要你的建议

我想用逗号分割字符串,逗号在正则表达式的两个单引号之外

正则表达式模式:
,(?=([^']*'[^']*')*[^']*$)

字符串输入:
“'2017-10-16 10:44:43.0000000',Abc',de',0',无”

预期输出:
[“'2017-10-16 10:44:43.0000000'”、'Abc'、'de'、'0'、'None'”]
有一个包含4个元素的数组

目前,我在正则表达式中使用split方法,它在JAVA上运行良好。 现在我必须用JavaScript来处理它,但我得到了一个意想不到的结果

你能给我一个建议吗

谢谢你的帮助

您的正则表达式包含一个捕获组,
([^']*'[^']*')

当您在正则表达式中使用捕获组并在Java中传递给该正则表达式时,捕获组不会添加到生成的字符串拆分数组中。在JavaScript中,将所有捕获的子字符串添加到结果数组中

要使两个引擎之间的模式兼容,只需将捕获组与非捕获组一起旋转

,(?=(?:[^']*'[^']*')*[^']*$)
    ^^^            ^

JS演示:

var rx=/,(?=(?:[^']*'[^']*')*[^']*$)/;
var s=“'2017-10-16 10:44:43.0000000','Abc','de','0',无”;

控制台日志(s.split(rx))??使用
.split(',')
应该可以工作!你得到了什么意想不到的结果?@Fallenhero:他不想在
输入中拆分
'Abc'
。逗号是字符串的一部分,它不是分隔符。不,它不是!正如你看到我的输入,有些情况下,其中一个里面有逗号<代码>'Abc',de'
是一个元素。