问题
使用RegEx,如何查找没有'
的奇数开头的第一个\
的索引?
详细信息
在我的代码中,我可以检测到以'
开头的PostgreSQL字符串的开头,并且我需要一个RegEx来找到后面带有匹配'
的字符串的有效结尾,或者告诉我何时没有有效的闭包,即字符串无效。
我遇到的问题是,当'
前面有奇数个\
时,如何跳过特殊情况,即要跳过以下情况:\'
, \\\'
,\\\\\'
等
是否可以跳过RegEx中的特殊情况,并给我闭包索引,如果不存在,则为-1。
答案 0 :(得分:2)
这应该是一个有效的正则表达式,以仅匹配第一个'
后跟偶数个\
的正则表达式:
(?<!\\)(?:\\\\)*(?!\\)\'
但是我不知道是否支持负向前/后向。
我实际上是在说:只匹配在其他\\
之前或之后的\
(不会转义)。
编辑:@revo让我注意到最后一部分是多余的,正确的正则表达式是:
(?<!\\)(?:\\\\)*'