貪心模式記錄

weixin_30788239發表於2020-04-05

問:

  var reg:RegExp=/a+?/
其中“?“號表示非貪心模式,表示儘可能少的匹配文字,這有什麼實戰意義嗎?
如果是為了讓它匹配到第一個,就不再往下匹配了。那豈不是多餘的圈圈嗎?你直接讓他匹配一次不就得了

 

答:

在星"*"或者加"+"後面加上問號"?",表示非貪模式,即儘可能少的匹配.示例如下:

有字串 hello world, this is regexp demo.

1. 使用:h.+o 將匹配:hello word, this is regexp demo 因為點匹配任意字元,後面跟加號,
表示前面一個h, 後面一個o,中間將匹配任意字元.此時為貪心模式,它將盡可能多的匹配,所以就一直匹配到最後面一個o.

2. 使用h.+?o 將匹配:hello 這時, 它將匹配一個h, 後面是一個o, 中間是任意字元(非貪模式),將盡可能少的匹配,所以只找到了hello

 

沒看懂,先記錄著

轉載於:https://www.cnblogs.com/lanyuexi287793920/p/3300340.html

相關文章