PHP正则表达式怎么匹配多行
PHP正則表達(dá)式怎么匹配多行
一、總結(jié)
1、可以用匹配模式修飾符s來使點(diǎn)匹配所有字符,包括換行符。
?
二、PHP匹配多行的正則表達(dá)式分析
代碼如下:
<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é)果什么都沒有!?
經(jīng)過一番啃骨之后寫了另一個(gè)?
pattern:"/<tr>(.|\n)*?<\/tr>" (這個(gè)是可以)?
將“[]”換成"()",使用“|”做一個(gè)或選擇,這樣就行了(納悶了,怎么"[]"也是選擇方式的就不行???)?
網(wǎng)上也有一答案:?
PATTEN: "/<tr>.*?<\/tr>/is" (很簡潔很方便,贊成此方法)?
后記: 怎么"[]"也是選擇方式的就不行???你知道的話別忘了告訴小弟一聲哦……?
[]里的.相當(dāng)于\.,仔細(xì)看正則的說明去吧?
涉及到換行一般考慮用模式修正符s?
s (PCRE_DOTALL)?
如果設(shè)置了這個(gè)修飾符, 模式中的點(diǎn)號(hào)元字符匹配所有字符, 包含換行符. 如果沒有這個(gè) 修飾符, 點(diǎn)號(hào)不匹配換行符.?
[]里面的是一些范圍或者組合?
lz試一下"/<tr>[.]*?<\/tr>/is"這個(gè)就知道了,?
還有()很強(qiáng)大的
以上是云棲社區(qū)小編為您精心準(zhǔn)備的的內(nèi)容,在云棲社區(qū)的博客、問答、公眾號(hào)、人物、課程等欄目也有的相關(guān)內(nèi)容,歡迎繼續(xù)使用右上角搜索按鈕進(jìn)行搜索正則表達(dá)式 匹配多行 php 正則表達(dá)式匹配、php正則表達(dá)式匹配url、php正則表達(dá)式匹配div、php正則表達(dá)式匹配ip、正則表達(dá)式匹配,以便于您獲取更多的相關(guān)知識(shí)。
?
三、測(cè)試題-簡答題
1、php中如何實(shí)現(xiàn)正則表達(dá)式匹配多行?
解答:可以用匹配模式修飾符s來使點(diǎn)匹配所有字符,包括換行符。PATTEN: "/<tr>.*?<\/tr>/is"
2、PHP中正則pattern:"/<tr>[.\n]*?<\/tr>" 能實(shí)現(xiàn)多行匹配么,為什么?
解答:不能
3、正則里面某個(gè)字符可a可b的選擇怎么寫?
解答:(a|b)? 注意是小括號(hào)不是中括號(hào)
4、php中正則修飾符s的作用是什么?
解答:s (PCRE_DOTALL)?如果設(shè)置了這個(gè)修飾符,?模式中的點(diǎn)號(hào)元字符匹配所有字符, 包含換行符. 如果沒有這個(gè) 修飾符, 點(diǎn)號(hào)不匹配換行符.?
5、php中正則修飾符怎么使用?
解答:和js中一樣,直接加在元素后面。
6、[]里面的是一些范圍或者組合? 這句話對(duì)么?
解答:對(duì)的。
7、正則中表示選擇用的是中括號(hào)還是小括號(hào)?
解答:小括號(hào)加|選擇字符。
8、php中正則有模式修飾符么?
解答:有。
?
總結(jié)
以上是生活随笔為你收集整理的PHP正则表达式怎么匹配多行的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试题: 已看1
- 下一篇: php 数据集转换树、递归重组节点信息多