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

2022-09-28 03:00:13 字數 885 閱讀 9117

原文符號

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

有無量詞

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

非貪婪匹配

貪婪匹配

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

string pattern1 =www.cppcns.com @"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"

幾個常用的非貪婪匹配pattern

*? 重複任意次,但盡可能少重複

+? 重複1次或更多次,但盡可能少重複

?? 重複0次或1次,但盡可能少重複

? 重複n到m次,但盡可能少重複

? 重複n次以上,但盡可能少重複

不捕捉模式

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

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...