搜索时跳过前面符号的奇数个

时间:2019-05-08 18:17:54

标签: node.js regex

问题

使用RegEx,如何查找没有'的奇数开头的第一个\的索引?


详细信息

在我的代码中,我可以检测到以'开头的PostgreSQL字符串的开头,并且我需要一个RegEx来找到后面带有匹配'的字符串的有效结尾,或者告诉我何时没有有效的闭包,即字符串无效。

我遇到的问题是,当'前面有奇数个\时,如何跳过特殊情况,即要跳过以下情况:\'\\\'\\\\\'

是否可以跳过RegEx中的特殊情况,并给我闭包索引,如果不存在,则为-1。

1 个答案:

答案 0 :(得分:2)

这应该是一个有效的正则表达式,以仅匹配第一个'后跟偶数个\的正则表达式:

(?<!\\)(?:\\\\)*(?!\\)\'

但是我不知道是否支持负向前/后向。 我实际上是在说:只匹配在其他\\之前或之后的\(不会转义)。


编辑:@revo让我注意到最后一部分是多余的,正确的正则表达式是:

(?<!\\)(?:\\\\)*'