我在JS中使用正则表达式匹配字符串时遇到了问题。 我可以使用以下方法:
/"[^"]*?"/g
在这个字符串中:
" this is a string "
但是我不能在这里使用那个:
" this is a \"string\" "
如何解决这个问题?谢谢。
我在JS中使用正则表达式匹配字符串时遇到了问题。 我可以使用以下方法:
/"[^"]*?"/g
" this is a string "
" this is a \"string\" "
如果我理解正确,您想要做的是测试字符串是否格式正确?因此不会出现字符串未到达结尾的情况?
如果是这种情况,您可以使用/"(?:[^"\\]|\\.)*"/g
"[^"\\]*(?:\\.[^"\\]*)*"
。 - user557597"(.*)"
可以实现相同的功能呢? - Mazdak"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'
- The Moisrex\"a\" "b"
测试这个解决方案。 - anubhava[^\\]?(".*?[^\\]")
https://regex101.com/r/nS2lT4/30
或者
(?:[^\\]|^)(".*?[^\\]")
查看演示。
?<!
之后不符合模式的字符串。了解更多信息,请访问 http://www.regular-expressions.info/lookaround.html。 - Mazdak(?<!\\)"
可以防止斜杠前面跟着引号,但在 \\"
这种情况下也会发生,其中引号是由两个(或偶数数量)反斜杠前导的。在这些情况下,引号不再被转义。 - Casimir et Hippolyte
""
吗? - anubhava