我有一個變量,貪婪行爲
var inp = "B123213";
現在,當我申請了下面的正則表達式,
var rg = /\d+/;
,並執行String
match
操作,
console.log(inp.match(rg));
我得到輸出爲123213
,表示表達式是貪婪的。但是,當我使用*
而不是+
時,表達式不會返回匹配項。請幫我理解爲什麼返回空匹配。它不應該返回相同的結果。
由於醫生說約?
,
如果之後的任何量詞*,+,?,或{}的立即使用,使得 量詞非貪婪(匹配儘可能少的字符), 而不是默認的,這是貪婪的(儘可能多地匹配 個字符)。例如,應用/ \ d + /到「123abc」 匹配「123」。但是應用/ \ d +?/到相同的字符串只匹配 「1」。
我認爲只有在應用/\d*?/
時纔會有空的匹配。當*
使用它
學習和玩正則表達式的一個很棒的網站是http://regex101.com/我幫助我大大學習和玩正則表達式。 – 2014-10-29 18:44:52