正则表达式 - 在字符串之前匹配引号(“)之间的字符串但不匹配(\”)

时间:2012-09-12 04:14:49

标签: regex

我需要匹配引号中的字符串,但要确保第一个引号不会被转义。

例如: First \“string \”是“Hello \”World \“!”
应该只匹配 Hello \“World \”!

我正在尝试修改(")(?:(?=(\\?))\2.)*?"

我尝试将[^\\"]添加到("),这种方法有效,但它只匹配(“)或其他所有不是(\”)的字母,我无法弄清楚修改([\\"]")以仅匹配(“)的方法(如果不是(\”)

这是我到目前为止([^\\"]")(?:(?=(\\?))\2.)*?"

我一直试图用这两个页面弄明白,但仍然无法得到它。
Can Regex be used for this particular string manipulation?
RegEx: Grabbing values between quotation marks

感谢

1 个答案:

答案 0 :(得分:2)

你可以像这样使用负面看法:

(?<!\\)"(.*?)(?<!\\)"

检查操作here on regex101

第一个匹配组包含:

Hello \"World\"!