正規表示式中 和 和 的理解

2021-08-21 18:29:36 字數 883 閱讀 9087

要理解?=和?!,首先需要理解前瞻,後顧,負前瞻,負後顧四個概念:

// 前瞻:

exp1(?

=exp2) 查詢exp2前面的exp1

// 後顧:(?

<=exp2)exp1 查詢exp2後面的exp1

// 負前瞻:

exp1(?

!exp2) 查詢後面不是exp2的exp1

// 負後顧:(?

<

!exp2)exp1 查詢前面不是exp2的exp1

舉例:

"中國人"

.replace

(/(?<=中國)人/

,"rr"

)// 匹配中國人中的人,將其替換為rr,結果為 中國rr

"法國人"

.replace

(/(?<=中國)人/

,"rr"

)// 結果為 法國人,因為人前面不是中國,所以無法匹配到

要理解?:則需要理解捕獲分組和非捕獲分組的概念:

(

)表示捕獲分組,()

會把每個分組裡的匹配的值儲存起來,使用$n

(n是乙個數字,表示第n個捕獲組的內容)(?

:)表示非捕獲分組,和捕獲分組唯一的區別在於,非捕獲分組匹配的值不會儲存起來

舉例:

// 數字格式化 1,123,000

"1234567890"

.replace

(/\b(?=(?:\d)+(?!\d))/g

,","

)// 結果:1,234,567,890,匹配的是後面是3*n個數字的非單詞邊界(\b)

千位分割符的理解

正規表示式中 和 和 的理解

要理解?和?首先需要理解前瞻,後顧,負前瞻,負後顧四個概念 前瞻 exp1 exp2 查詢exp2前面的exp1 後顧 exp2 exp1 查詢exp2後面的exp1 負前瞻 exp1 exp2 查詢後面不是exp2的exp1 負後顧 中國人 replace 中國 人 rr 匹配中國人中的人,將其替...

關於正規表示式中 和

是正規表示式匹配字串開始位置 是正規表示式匹配字串結束位置 很多人始終沒搞清楚這是什麼意思,這裡用幾個例子看下就一目了然了。先搞清楚 匹配字串開始位置 其實就是從字串左邊第乙個字元開始匹配 1 str 2 pattern blog 因為 為特殊字元 3 str preg replace patter...

正規表示式中 和 的區別

圓括號 是組,主要應用在限制多選結構的範圍 分組 捕獲文字 環視 特殊模式處理 示例 1 abc bcd cde 表示這一段是abc bcd cde三者之一均可,順序也必須一致 2 abc 表示這一組要麼一起出現,要麼不出現,出現則按此組內的順序出現 3 abc 表示找到這樣abc這樣一組,但不記錄...