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

dfh*_*err 4 ruby regex

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

正则表达式应该

abc"asd # match
abc\"asd # not match
abc\\"asd # match
abc\\\"asd # not match
abc\\\\"asd # match
Run Code Online (Sandbox Code Playgroud)

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

有人可以帮忙吗?

PS:我想在红宝石中这样做

Cas*_*yte 14

你可以用这个:

(?<!\\)(?:\\{2})*\K"
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • 解释每个部分的作用可能对 OP 和未来的读者有所帮助。 (3认同)