正则表达式一直在寻找我希望与前一个角色匹配的角色

时间:2016-10-14 14:53:27

标签: javascript regex string

我在,中有以下正则表达式进行拆分操作,因为我无法在后面找一个负面的查找字符串中的任何分隔符\,而不是由一个或多个进行转义[^\\],的字符。

\

正则表达式可以很好地找到逗号没有前进到hello\,there,are的位置,但也找到将逗号作为匹配字符进行匹配的字符,从而错误地拆分字符串。

例如,如果我有字符串

e,

结果是,与我的正则表达式匹配,而不仅仅是[hello\,ther] [are]。使拆分字符串数组读取

{{1}}

为什么我使用的正则表达式一直在找到逗号和正在进行的字符而不是只匹配逗号?

1 个答案:

答案 0 :(得分:3)

你不能在这里使用split,因为你需要JS regex不支持的lookbehind。使用匹配适当的正则表达式。如下所示:

/(?:[^\\,]|\\.)+/g

请参阅regex demo

模式匹配除+,\)或([^\\,])之外的任何字符的1个或多个(|)序列任何转义使用\\.

的字符(不包括换行符)

JS演示:

var regex = /(?:[^\\,]|\\.)+/g;
var str = "hello\\,there,are";
var res = str.match(regex);
console.log(res);