【正則表達式】正則表達式

內容轉載來自:正則表達式30分鐘教程

內容轉載來自:JAVA正則表達式詳解



正則表達式的貪婪與懶惰模式
 當正則表達式中包含能接受重複的限定符時,通常的行爲是(在使整個表達式能得到匹配的前提下)匹配儘可能多的字符。以這個表達式爲例:a.*b,它將會匹配最長的以a開始,以b結束的字符串。如果用它來搜索aabab的話,它會匹配整個字符串aabab。這被稱爲貪婪匹配。

      有時,我們更需要懶惰匹配,也就是匹配儘可能少的字符。前面給出的限定符都可以被轉化爲懶惰匹配模式,只要在它後面加上一個問號?。這樣.*?就意味着匹配任意數量的重複,但是在能使整個匹配成功的前提下使用最少的重複。現在看看懶惰版的例子吧:
      a.*?b匹配最短的,以a開始,以b結束的字符串。如果把它應用於aabab的話,它會匹配aab(第一到第三個字符)和ab(第四到第五個字符)。

代碼/語法 說明 

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

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