這篇文章主要介紹了關於深入理解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正規表示式之貪婪模式與非貪婪模式的解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!