JS 非貪婪模式詳解

2022-05-10 07:46:06 字數 1064 閱讀 3174

首先, 先理解下概念: 非貪婪模式 即在正則後加問號"?" 意義為按需匹配, 

不明白, 我們先往下看 

共用函式: 

//

即為字串高亮為紅色

function hightlight(str)

var reg = new regexp('(a+)'); //

a+為 一到多個a匹配

var str = 'aaa';

var newstr = str.replace(reg, hightlight);

document.write(newstr + "

");

輸出: aaa 

注: 以上**等同於: 

var reg = new regexp('(a+)'); //

a+為 一到多個a匹配

var str = 'aaa';

var newstr = str.replace(reg, "$1"); //

$1 表示正則中匹配括號內的內容的第乙個

document.write(newstr + "

");

var reg = new regexp('(a+?)'); //

加上?號後為非貪婪模式, 即匹配完成即返回, 不繼續

var str = 'aaa';

var newstr = str.replace(reg, hightlight);

document.write(newstr + "

");

輸出: aaa

var reg = new regexp('(a*?b)');  

var str = 'aaab';

var newstr = str.replace(reg, hightlight);

document.write(newstr);

輸出: aaab

js正則貪婪模式 JS關於正則的非貪婪模式

首先正則是很複雜,很巧妙的。你舉的這個例子說明貪婪模式和非貪婪模式是不對的。啥是貪婪模式,和非貪婪模式?貪婪模式,就是 貪得無厭 有了還要,有多少要多少,指導沒有 字串尾 非貪婪模式,恰好相反,匹配了就不要了,就得到結果。我先舉乙個例子來說明,貪婪模式和非貪婪模式,只在你的基礎上稍稍改動,為了後面對...

貪婪模式和非貪婪模式

1.什麼是正規表示式的貪婪與非貪婪匹配 如 string str abcaxc patter p ab c 貪婪匹配 正規表示式一般趨向於最大長度匹配,也就是所謂的貪婪匹配。如上面使用模式p匹配字串str,結果就是匹配到 abcaxc ab c 非貪婪匹配 就是匹配到結果就好,就少的匹配字元。如上面...

貪婪模式和非貪婪模式

正規表示式通常使用於查詢匹配的字串。python裡數量詞預設是貪婪的 在少數語言裡也可能預設是非貪婪 總是嘗試匹配盡可能多的字元 非貪婪模式剛好相反,總是嘗試匹配盡可能少的字元。例如,正規表示式 ab 如果用於查詢 abbbc 就會找到 abbb 如果使用非貪婪的數量詞 ab 就會找到 a 例如1 ...