php正則表達式中的非貪婪模式匹配
更新時間:2007年02月14日 00:00:00 作者:
一般情況下,正則表達式的匹配是貪婪模式的,比如下面這個例子:
字符串:....src="http://www.bloghome.cn/1.mp3" type="application/x-mplayer2" ....
要求的結果:http://www.bloghome.cn/1.mp3
如果匹配表達式寫為:/src="(.*)"/,則得不到正確的結果,因為最后一個雙引號的匹配是貪婪模式的。
解決辦法:匹配表達式寫為:
/src="(.*)".?/
上面表達式中,".?是非貪婪模式匹配。也就是說,只要在一個字符后面跟上限定個數(shù)的特殊字符,匹配就是非貪婪模式了。
字符串:....src="http://www.bloghome.cn/1.mp3" type="application/x-mplayer2" ....
要求的結果:http://www.bloghome.cn/1.mp3
如果匹配表達式寫為:/src="(.*)"/,則得不到正確的結果,因為最后一個雙引號的匹配是貪婪模式的。
解決辦法:匹配表達式寫為:
/src="(.*)".?/
上面表達式中,".?是非貪婪模式匹配。也就是說,只要在一個字符后面跟上限定個數(shù)的特殊字符,匹配就是非貪婪模式了。
您可能感興趣的文章:
相關文章
正則表達式替換table表格中的樣式與空標記(保留rowspan與colspan)
最近幾天的勞動成果,用正則表達式去除表格中的樣式與class方便后臺編輯的操作,在編寫過程中不斷進步,后續(xù)將不定時更新,需要的朋友可以參考下2020-04-04最全的用正則批量去除Teleport Pro整站下載文件冗余代碼
有時候我們用Teleport Pro整站下載系統(tǒng),批量下載一個網(wǎng)站的內容時,里面會加入一些冗余代碼,而且大多都不一樣,這時候我們就只好用正則表達式來替換了2013-11-11