首頁  >  文章  >  後端開發  >  PHP匹配多行的正規表示式分析

PHP匹配多行的正規表示式分析

高洛峰
高洛峰原創
2017-02-06 16:35:421368瀏覽

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:"/

[.n]*?"  (這個是錯誤的) 
  想法思路:"."能匹配任意非換行字符,使用"[.n  想法思路:"."能匹配任意不換行字符,使用"[.nn] ]"組合,使其能夠匹配所有的字符(包括換行符),但天有不測風雲啊——悲劇了,結果什麼都沒有!
  經過一番啃骨之後寫了另一個 
  pattern:"/(.|n)*?"  (這個是可以) 
  將「[]」換成"()",使用「|」做一個或選擇,這樣就行了(納悶了,怎麼"[]"也是選擇方式的就不行???) 
  網上也有一答案: 
  PATTEN: "/.*?/is"  (很簡潔很方便,贊成此方法) 

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

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

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

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

[]裡面的是一些範圍或者組合 
lz試一試" /[.]*?/is"這個就知道了, 還有()很強大的

更多PHP匹配多行的正則表達式分析相關文章請關注PHP中文網! 🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn