![](/img/trans.png)
[英]Regular expression to split string at '/' or '\' in javascript?
[英]Split commas on string with regular expression in JavaScript
我是正则表达式的初学者。 我需要你的建议。
我想用逗号分隔字符串,这些逗号位于带有正则表达式的几个单引号之外。
正则表达式模式: ,(?=([^']*'[^']*')*[^']*$)
字符串输入: "'2017-10-16 10:44:43.0000000', 'Abc,'', de', '0', None"
预期输出: ["'2017-10-16 10:44:43.0000000'", " 'Abc,'', de'", " '0'", " None"]
有一个包含 4 个元素的数组。
目前,我正在使用带有正则表达式的 split 方法,它在 JAVA 上运行良好。 现在我必须通过 JavaScript 来处理它,但我得到了一个意想不到的结果!
你能给我一个建议吗?
谢谢你的帮助!
您的正则表达式包含一个捕获组([^']*'[^']*')
。
当您在传递给Java 中String#split()
的正则表达式中使用捕获组时,捕获组不会添加到生成的拆分字符串数组中。 在JavaScript 中, String#split()
将所有捕获的子字符串添加到结果数组中。
为了使两个引擎之间的模式兼容,只需将捕获组转为非捕获组,
,(?=(?:[^']*'[^']*')*[^']*$)
^^^ ^
请参阅正则表达式演示。
JS演示:
var rx = /,(?=(?:[^']*'[^']*')*[^']*$)/; var s = "'2017-10-16 10:44:43.0000000', 'Abc,'', de', '0', None"; console.log(s.split(rx));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.