正則表達中貪婪性與懶惰性表示式

2021-04-15 09:24:17 字數 539 閱讀 3183

string original="first line/n/rsecond line";

string str = regex.replace(original, "^", "> ", regexoptions.multiline);

string test = "this is a first test";

//貪婪表示式(不用回溯,所以會快)

regex regx = new regex("<.+>");

matchcollection mats = regx.matches(test);

//懶惰性表示式(因為要回溯,所以會慢)

regex regx1 = new regex("<.+?>");

matchcollection mats1 = regx1.matches(test);

//這個方法最佳(  惰性擴充套件的乙個替代方案)

regex regx2 = new regex("<[^>]+>");

matchcollection mats2 = regx2.matches(test); 

正規表示式 貪婪與懶惰

當正規表示式中包含能接受重複的限定符時,通常的行為是 在使整個表示式能得到匹配的前提下 匹配盡可能多的字元。考慮這個表示式 a.b 它將會匹配最長的以a開始,以b結束的字串 如果用它來搜尋aabab 的話,它會匹配整個字串aabab 這被稱為貪婪匹配。有時,我們更需要懶惰匹配,也就是匹配盡可能少的字...

正規表示式 貪婪與非貪婪(惰性)

有時,我們想用正則匹配以某個子串開頭,且以某個子串或字元結尾的子字串,但是結尾的字串或字元在原字串 現了多次,但我們只想匹配從開始處到第一次出現的地方,換句話說,想得到開始和結尾之間內容最少的匹配。通常使用如下字元類描述前導字元的重複特徵 1.告訴引擎匹配前導字元0次或一次。事實上是表示前導字元是可...

正規表示式的貪婪與懶惰

當正規表示式中包含能接受重複的限定符 指定數量的 例如 等 時,通常的行為是 在使整個表示式能得到匹配的前提下 匹配盡可能多的字元。考慮這個表示式 a.b,它將會匹配最長的以a開始,以b結束的字串。如果用它來搜尋aabab的話,它會匹配整個字串aabab。這被稱為貪婪匹配。有時,我們更需要懶惰匹配,...