你好,这是我的问题,如果你能提供帮助,我将不胜感激。
这是我的正则表达式:\"(.*?)\"
我的目标是在""
内收集每个单词等。
如果我针对{$= "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
整体?
答案 0 :(得分:2)
有两种方法可以做到:
您可以检查开始和结束双引号之前的字符是否不是反斜杠:
[^\\]\"(.*?[^\\])\"
使用负面的lookbehind正则表达式:
(?<!\\)\"(.*?)(?<!\\)\"
其中(?<!b)a
表示a
前面没有b
。
后者似乎效果更好,因为它也匹配空字符串。