正則表達式問號用法

 

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

在滿足匹配時,匹配儘可能長的字符串,默認情況下,採用貪婪匹配

1

2

3

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

Regex regex = new Regex(pattern1);

regex.Match("abcabc"); // return "abcabc"

非貪婪匹配

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

1

2

3

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

Regex regex = new Regex(pattern1);

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

幾個常用的非貪婪匹配Pattern

*? 重複任意次,但儘可能少重複
+? 重複1次或更多次,但儘可能少重複
?? 重複0次或1次,但儘可能少重複
{n,m}? 重複n到m次,但儘可能少重複
{n,}? 重複n次以上,但儘可能少重複

 

參考 https://www.jb51.net/article/72871.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章