我需要匹配较大字符串中的双引号字符串,如:
"foo bar" == ""
它应匹配"foo bar"
和""
以及此
"foo \" bar" == "\""
它应匹配"foo \" bar"
和"\""
到目前为止我有这个正则表达式:
(?<!\\\\)"(?:\\\\"|[^"])*(?<!\\\\)"
但它在第一次转义报价后结束。并且不会返回"foo \" bar"
。
答案 0 :(得分:1)
我会用这个:
(?<!\\)"(?:\\"|[^"])*(?<![^\\]\\)"
regex101上的演示
(?<!\\)"(?:(?<!\\)\\"|[^"])*(?<![^\\]\\)"
似乎有用