正则表达式匹配不跟在斜杠字符后面的双引号。

6
我有一个字符串,如下所示:
"abcd\" efg\" hi" jklm"
我想获取两个第一个字符“之间的子字符串,该字符不是\“。
例如,在上面的字符串中,我想获取abcd\" efg\" hi。
目前,我将 \" 替换为另一个字符,然后使用正则表达式 "([^"]*)" 提取两个第一个字符 "之间的子字符串。是否有办法直接使用正则表达式而不用替换 \" 为另一个字符?
1个回答

8

使用这个正则表达式:

[^\\]?"(.*?[^\\])"

解释:

[^\\]?   match an optional single character which is not backslash
"(.*?    match a quote followed by anything (non-greedy)
[^\\])"  match a quote preceded by anything other than backslash

这个正则表达式将匹配在开头和结尾引号之间的最小内容,该内容不含反斜杠。

Regex101


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接