復(fù)制代碼 代碼如下:
<table>
<tr><td>aaaa</td></tr>
<tr><td>bbbb</td></tr>
<tr><td>cccc</td></tr>
<tr><td>dddd</td></tr>
</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)大的