PHP正則表達式怎么匹配多行


PHP正則表達式怎么匹配多行

一、總結

1、可以用匹配模式修飾符s來使點匹配所有字符,包括換行符。

 

二、PHP匹配多行的正則表達式分析

代碼如下:


<table> 
<tr><td>aaaa</td></tr> 
<tr><td>bbbb</td></tr> 
<tr><td>cccc</td></tr> 
<tr><td>dddd</td></tr> 
</table> 


像這種的文本,用PHP的正則表達式怎么匹配?? 
  我最初的想法: 
  pattern:"/<tr>[.\n]*?<\/tr>"  (這個是錯誤的) 
  想法思路:"."能匹配任意非換行字符,使用"[.\n]"組合,使其能夠匹配所有的字符(包括換行符),但天有不測風雲啊——悲劇了,結果什么都沒有! 
  經過一番啃骨之后寫了另一個 
  pattern:"/<tr>(.|\n)*?<\/tr>"  (這個是可以) 
  將“[]”換成"()",使用“|”做一個或選擇,這樣就行了(納悶了,怎么"[]"也是選擇方式的就不行???) 
  網上也有一答案: 
  PATTEN: "/<tr>.*?<\/tr>/is"  (很簡潔很方便,贊成此方法) 

后記: 怎么"[]"也是選擇方式的就不行???你知道的話別忘了告訴小弟一聲哦…… 

[]里的.相當於\.,仔細看正則的說明去吧 

涉及到換行一般考慮用模式修正符s 

s (PCRE_DOTALL) 
如果設置了這個修飾符, 模式中的點號元字符匹配所有字符, 包含換行符. 如果沒有這個 修飾符, 點號不匹配換行符

[]里面的是一些范圍或者組合 
lz試一下"/<tr>[.]*?<\/tr>/is"這個就知道了, 
還有()很強大

以上是雲棲社區小編為您精心准備的的內容,在雲棲社區的博客、問答、公眾號、人物、課程等欄目也有的相關內容,歡迎繼續使用右上角搜索按鈕進行搜索正則表達式 匹配多行 php 正則表達式匹配、php正則表達式匹配url、php正則表達式匹配div、php正則表達式匹配ip、正則表達式匹配,以便於您獲取更多的相關知識。

 

三、測試題-簡答題

1、php中如何實現正則表達式匹配多行?

解答:可以用匹配模式修飾符s來使點匹配所有字符,包括換行符。PATTEN: "/<tr>.*?<\/tr>/is"

2、PHP中正則pattern:"/<tr>[.\n]*?<\/tr>" 能實現多行匹配么,為什么?

解答:不能

3、正則里面某個字符可a可b的選擇怎么寫?

解答:(a|b)  注意是小括號不是中括號

4、php中正則修飾符s的作用是什么?

解答:s (PCRE_DOTALL) 如果設置了這個修飾符, 模式中的點號元字符匹配所有字符, 包含換行符. 如果沒有這個 修飾符, 點號不匹配換行符

5、php中正則修飾符怎么使用?

解答:和js中一樣,直接加在元素后面。

6、[]里面的是一些范圍或者組合  這句話對么?

解答:對的。

7、正則中表示選擇用的是中括號還是小括號?

解答:小括號加|選擇字符。

8、php中正則有模式修飾符么?

解答:有。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM