匹配未包含在引號中的實例
在上一個問題中,建議匹配正規表示式的所有出現,同時排除引號內的文本不可行。但是,可以使用複雜但有效的正規表示式來克服此限制。
此正規表示式的關鍵是觀察如果子字串前面有偶數個引號,則子字串位於引號之外。這可以表示為以下前瞻斷言:
(?=([^"]*"[^"]*")*[^"]*$)
此斷言確保前面的文字包含偶數個引號,後面跟著當前子字串。
排除轉義引號,我們還要考慮反斜線。正規表示式變得稍微複雜一些:
\+(?=([^"\]*(\.|"([^"\]*\.)*[^"\]*"))*[^"]*$)
此正規表示式首先超越任何非引號字元 (S)。當遇到反斜線或引號時,它要麼忽略下一個字元(如果是反斜線),要麼前進到下一個非轉義引號。
雖然這個正規表示式有點複雜,但它有效地匹配所有實例正規表示式不包含在引號中,允許在 JavaScript 的 split() 和 Replace() 方法中獲得所需的結果。
以上是如何在 JavaScript 中符合引號外的正規表示式實例:綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!