我知道如何在javascript中处理正则表达式的基础知识。我可以数数'和\“在字符串中。但如何匹配'而不是\'在一个字符串中。到目前为止,我有一个解决方法,减去两个匹配的结果。是否有可能找到计数包括'并排除\'在一个正则表达式模式。
答案 0 :(得分:1)
在JavaScript中,您没有negative lookbehind assertions,因此您无法在'
之前轻松检查是否存在奇数个反斜杠,除非您将这些字符设为比赛。
因此,你需要做一些更复杂的事情 - 匹配所有以单个未转义的引号结尾的字符串,有效地将整个输入分成块,每个引用一个。然后计算那些块:
/[^\\']*(?:\\.[^\\']*)*'/g
将匹配字符串的所有部分。
<强>解释强>
[^\\']* # Match any number of characters except backslashes and quotes.
(?: # Start of non-capturing group: Match...
\\. # an escaped character (any escape sequence like \' or etc.),
[^\\']* # followed by any number of characters except backslashes and quotes.
)* # Do this as often as needed (even 0 times)
' # until you can match a single (unescaped) quote