您好,这是我的问题,如果您能提供帮助,我们将不胜感激。

这是我的正则表达式:\"(.*?)\",我的目标是收集""中的每个单词等。

如果我对照{$= "a=" "a" 0 @paramGet ", b=" "b" 0 @paramGet ", rezultat=" "a" 0@paramGet "b" 0 @paramGet + $}进行检查并收集所有组,则会得到:

a=  a  , b=  b  ,rezultat=  a   b


但是如果对照{$= "a=" "a" 0 @paramGet ", b\"=" "b" 0 @paramGet ", rezu\"ltat=" "a" 0@paramGet "b" 0 @paramGet + $}进行检查,则会得到:

"a="    "a"    ", b\"    " "     " 0 @paramGet "     "ltat="    "a"   "b"


这是我的问题:有什么方法可以使正则表达式识别

a=  a  , b\"=  b  ,rezu\"ltat=  a   b


整个?

最佳答案

有两种方法可以做到这一点:


您可以检查一下,双引号和双引号前面的字符不是反斜杠:

[^\\]\"(.*?[^\\])\"
在正则表达式后面使用负数:

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

其中(?<!b)a表示a之前没有b


后者似乎更好用,因为它也匹配空字符串。

07-24 18:20