您好,这是我的问题,如果您能提供帮助,我们将不胜感激。
这是我的正则表达式:\"(.*?)\"
,我的目标是收集""
中的每个单词等。
如果我对照{$= "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
。
后者似乎更好用,因为它也匹配空字符串。