正则表达式匹配未转义的引号

时间:2014-06-13 16:12:10

标签: ruby regex

我正在寻找一个与任意字符串中未转义的引号匹配的正则表达式,但不是已经转义的引号,因此我可以转义未转义的引号。我试图修改我发现的任何类似的解决方案,但没有捕获到我需要的确切内容。

正则表达式

abc"asd # match
abc\"asd # not match
abc\\"asd # match
abc\\\"asd # not match
abc\\\\"asd # match

所以基本匹配前面带有偶数个反斜杠(包括零)的任何引号,但不匹配前面带有奇数个反斜杠的任何引号。

有人可以帮忙吗?

PS:我想在ruby中执行此操作

2 个答案:

答案 0 :(得分:13)

您可以使用:

(?<!\\)(?:\\{2})*\K"

(?<!\\)检查之前没有反斜杠(负面反馈)

(?:\\{2})*匹配所有偶数反斜杠

\K删除匹配结果左侧的所有内容(此处为反斜杠)

答案 1 :(得分:-2)

看起来你可能正在寻找这样的东西:

(\\\\)*"