1. 程式人生 > >[ 轉載 ] 什麽是正則表達式的貪婪與非貪婪匹配

[ 轉載 ] 什麽是正則表達式的貪婪與非貪婪匹配

blog 環視 北京市 正則表達式 clas 第一個 pat exp com

http://www.cnblogs.com/xudong-bupt/p/3586889.html 1.什麽是正則表達式的貪婪與非貪婪匹配

如:String str="abcaxc";

Patter p="ab*c";

貪婪匹配:正則表達式一般趨向於最大長度匹配,也就是所謂的貪婪匹配。如上面使用模式p匹配字符串str,結果就是匹配到:abcaxc(ab*c)。

非貪婪匹配:就是匹配到結果就好,就少的匹配字符。如上面使用模式p匹配字符串str,結果就是匹配到:abc(ab*c)。

2.編程中如何區分兩種模式

默認是貪婪模式;在量詞後面直接加上一個問號?就是非貪婪模式。

量詞:{m,n}:m到n個

*:任意多個

+:一個到多個

?:0或一個 以上來自博主的博客,然後這道題目 .表示除\n之外的任意字符 *表示匹配0-無窮
+表示匹配1-無窮 (?=Expression) 順序環視,(?=\\()就是匹配正括號 懶惰模式正則:
src=".*? (?=\\()) " 結果:北京市 因為匹配到第一個"就結束了一次匹配。不會繼續向後匹配。因為他懶惰嘛。

[ 轉載 ] 什麽是正則表達式的貪婪與非貪婪匹配