首頁 > web前端 > js教程 > 如何匹配帶引號的字串之外的正規表示式實例,即使帶有轉義引號?

如何匹配帶引號的字串之外的正規表示式實例,即使帶有轉義引號?

DDD
發布: 2024-10-28 00:02:01
原創
897 人瀏覽過

How to Match Regex Instances Outside of Quoted Strings, Even with Escaped Quotes?

匹配引號之外的實例

與先前的假設相反,可以匹配給定正則表達式不在引號內的所有實例使用正規表示式的字串部分,甚至考慮轉義引號。

正規表示式解決方案

要實現此目的,請利用前瞻斷言來檢查每個單字是否是在引號之外,當其後有偶數個引號時會發生這種情況。下面的正規表示式捕捉了此模式:

\+(?=([^"]*"[^"]*")*[^"]*$)
登入後複製

處理轉義引號

要處理轉義引號,請修改表達式以忽略反斜線並前進到下一個未轉義引號:

\+(?=([^"\]*(\.|"([^"\]*\.)*[^"\]*"))*[^"]*$)
登入後複製

這確保轉義引號不會被計算為左引號。

JavaScript 與.split() 和.replace() 的用法

為了與JavaScript 的.split() 和.replace() 方法一起使用,可以使用以下程式碼:

const input = '+bar+baz"not+or\"+or+\"this+\"foo+bar+';
const replaced = input.replace(/\+(?=([^"\]*(\.|"([^"\]*\.)*[^"\]*"))*[^"]*$)/g, '#');
console.log(replaced); // "#bar#baz\"not+or\"+or+\"this+\"foo#bar#"
登入後複製

以上是如何匹配帶引號的字串之外的正規表示式實例,即使帶有轉義引號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板