PHP匹配多行的正則表達(dá)式分析
更新時(shí)間:2011年07月29日 23:51:01 作者:
PHP匹配多行的正則表達(dá)式分析,需要的朋友可以參考下,多用于采集替換等。
復(fù)制代碼 代碼如下:
<table>
<tr><td>aaaa</td></tr>
<tr><td>bbbb</td></tr>
<tr><td>cccc</td></tr>
<tr><td>dddd</td></tr>
</table>
像這種的文本,用PHP的正則表達(dá)式怎么匹配??
我最初的想法:
pattern:"/<tr>[.\n]*?<\/tr>" (這個(gè)是錯(cuò)誤的)
想法思路:"."能匹配任意非換行字符,使用"[.\n]"組合,使其能夠匹配所有的字符(包括換行符),但天有不測(cè)風(fēng)云啊——悲劇了,結(jié)果什么都沒(méi)有!
經(jīng)過(guò)一番啃骨之后寫了另一個(gè)
pattern:"/<tr>(.|\n)*?<\/tr>" ?。ㄟ@個(gè)是可以)
將“[]”換成"()",使用“|”做一個(gè)或選擇,這樣就行了(納悶了,怎么"[]"也是選擇方式的就不行???)
網(wǎng)上也有一答案:
PATTEN: "/<tr>.*?<\/tr>/is" ?。ê芎?jiǎn)潔很方便,贊成此方法)
后記: 怎么"[]"也是選擇方式的就不行???你知道的話別忘了告訴小弟一聲哦……
[]里的.相當(dāng)于\.,仔細(xì)看正則的說(shuō)明去吧
涉及到換行一般考慮用模式修正符s
s (PCRE_DOTALL)
如果設(shè)置了這個(gè)修飾符, 模式中的點(diǎn)號(hào)元字符匹配所有字符, 包含換行符. 如果沒(méi)有這個(gè) 修飾符, 點(diǎn)號(hào)不匹配換行符.
[]里面的是一些范圍或者組合
lz試一下"/<tr>[.]*?<\/tr>/is"這個(gè)就知道了,
還有()很強(qiáng)大的
相關(guān)文章
學(xué)習(xí)正則表達(dá)式30分鐘入門教程(第二版)
30分鐘內(nèi)讓你明白正則表達(dá)式是什么,并對(duì)它有一些基本的了解,讓你可以在自己的程序或網(wǎng)頁(yè)里使用它2007-03-03PHP 正則表達(dá)式常用函數(shù)使用小結(jié)
學(xué)習(xí)php正則的朋友不得不了解的一些函數(shù),大家看了下面的文章就知道了php下正則表達(dá)式的調(diào)用方法。2009-09-09