1
我知道如何在JavaScript中處理正則表達式的基本知識。我可以在字符串中計算'和'。但如何在字符串中匹配'而不是'。截至目前,我有一個解決方法是減去兩個比賽的結果。是否有可能在單個正則表達式模式中找到計數包括'並排除\'。如何計算字符串中'但不是'的正則表達式匹配
我知道如何在JavaScript中處理正則表達式的基本知識。我可以在字符串中計算'和'。但如何在字符串中匹配'而不是'。截至目前,我有一個解決方法是減去兩個比賽的結果。是否有可能在單個正則表達式模式中找到計數包括'並排除\'。如何計算字符串中'但不是'的正則表達式匹配
在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