我有这样的字符串:
“abcd”efg \“hi”jklm“
我想在两个第一个字符"
之间获取子字符串,而不是\"
例如,在上面的字符串中,我想获得abcd\" efg\" hi
目前,我将\"
替换为另一个字符,然后使用正则表达式"([^"]*)"
提取两个第一个字符"
之间的子字符串。有没有办法直接使用正则表达式而不用另一个字符替换\"
。
答案 0 :(得分:6)
使用此正则表达式:
[^\\]?"(.*?[^\\])"
<强>解释强>
[^\\]? 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
此正则表达式将匹配开头报价和没有反斜杠的结束报价之间的最小内容。