首頁  >  文章  >  web前端  >  深入理解JS正規表示式之貪婪模式與非貪婪模式的解析

深入理解JS正規表示式之貪婪模式與非貪婪模式的解析

不言
不言原創
2018-07-11 09:45:372283瀏覽

這篇文章主要介紹了關於深入理解JS正規表示式之貪婪模式與非貪婪模式的解析,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

貪婪模式

之前說了正規的量詞,但是量詞會帶來一個到底該匹配哪個的問題。

如下正規表示式:

\d{3,6}

這個正規表示式是符合3到6個數字,但是當這個正規表示式被用來符合12345678這個字串,到底該配對三個數字還是6個數字,亦或者是都不是?

可以先試試:

let text = '12345678'
let reg = /\d{3,6}/g
text.replace(reg, 'X')      // X78

可以看到該正則將123456六個數字替換為了X,也就是說,在正常模式下,正規表示式會盡可能多的匹配。

正常情況下,正規表示式採用貪婪模式,即,盡可能多的匹配。

非貪婪模式

但是,有時我們需要正規表示式盡可能少的匹配,也就是說,一旦成功匹配不再繼續嘗試,這就是非貪婪模式。那麼,如何進入非貪婪模式呢?

做法很簡單,在量詞後面加上?即可。

let text = '12345678'
let reg = /\d{3,6}?/g
text.replace(reg, 'X')      // X45678

可以發現,在非貪婪模式下,該正規只匹配了123,即最少匹配。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

深入理解JS正規表示式之量詞的解析

深入理解JS正規表示式之預定義類別與邊界的解析

以上是深入理解JS正規表示式之貪婪模式與非貪婪模式的解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn