正規表示式 問號的四種用法

2022-03-23 18:48:52 字數 615 閱讀 5703

因為?在正規表示式中有特殊的含義,所以如果想匹配?本身,則需要轉義,\?

問號可以表示重複前面內容的0次或一次,也就要麼不出現,要麼出現一次。

在滿足匹配時,匹配盡可能長的字串,預設情況下,採用貪婪匹配

string pattern1 = @"a.*c"; // greedy match

regex regex = new regex(pattern1);
regex.match("abcabc"); // return "abcabc"

在滿足匹配時,匹配盡可能短的字串,使用?來表示非貪婪匹配

string pattern1 = @"a.*?c";   // non-greedy match 

regex regex = new regex(pattern1);

regex.match("abcabc"); // return "abc"

如何關閉圓括號的捕獲能力?而只是用它來做分組,方法是在左括號的後邊加上:?,這裡第乙個圓括弧只是用來分組,而不會占用捕獲變數,所以$1的內容只能是steak或者burger,而永遠不可能是bronto。

while(<>)

}參考:

正規表示式 問號的四種用法

因為?在正規表示式中有特殊的含義,所以如果想匹配?本身,則需要轉義,問號可以表示重複前面內容的0次或一次,也就是要麼不出現,要麼出現一次。在滿足匹配時,匹配盡可能長的字串,預設情況下,採用貪婪匹配 string pattern1 a.c greedy matchregex regex new reg...

正規表示式 問號的四種用法

因為?在正規表示式中有特殊的含義,所以如果想匹配?本身,則需要轉義,問號可以表示重複前面內容的0次或一次,也就是要麼不出現,要麼出現一次。在滿足匹配時,匹配盡可能長的字串,預設情況下,採用貪婪匹配 string pattern1 a.c greedy matchregex regex new reg...

正規表示式 問號的四種用法

因為?在正規表示式中有特殊的含義,所以如果想匹配?本身,則需要轉義,問號可以表示重複前面內容的0次或一次,也就是要麼不出現,要麼出現一次。在滿足匹配時,匹配盡可能長的字串,預設情況下,採用貪婪匹配 string pattern1 a.c greedy matchregex regex new reg...