1

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

例如:第一个 \"string\" 是 "Hello \"World\"!"
应该只匹配Hello \"World\"!

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

我尝试添加[^\\"]to ("),这有点工作,但它只匹配 (") 或所有其他不是 (\") 的字母,我想不出一种修改方法([\\"]")以仅匹配 (") 如果它是不是 (\”)

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

我一直在尝试使用这两个页面来弄清楚,但仍然无法得到它。
正则表达式可以用于这种特定的字符串操作吗?
正则表达式:在引号之间抓取值

谢谢

4

1 回答 1

2

您可以像这样使用负面的外观:

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

在 regex101 上查看它的实际效果

第一个匹配组包含:

Hello \"World\"!
于 2012-09-12T04:26:38.987 回答