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



问题

使用正则表达式,如何找到前面没有奇数的第一个'的索引?


在我的代码中,我可以检测以'开头的 PostgreSQL 字符串的开头,并且我需要正则表达式来查找后面字符串中的有效结尾,以及匹配的',或者告诉我何时没有有效的闭包,即字符串无效。

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

是否可以跳过正则表达式中的此类特殊情况,并给我闭包索引,或者如果不存在,则为 -1?

这应该是一个有效的正则表达式,仅匹配前面有偶数个的第一个'

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

但我不知道是否支持负面的前瞻性/反向性。 我基本上是说:只需匹配其他之前或之后的\(未转义)。


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

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

最新更新