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