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

2021-07-09 20:58:20 字數 633 閱讀 3571

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

問號可以表示重複前面內容的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(<>)

} zdd

出處:

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

因為?在正規表示式中有特殊的含義,所以如果想匹配?本身,則需要轉義,問號可以表示重複前面內容的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...