Re: [問題] preg_match_all抓取所有<div>....</div>

看板RegExp (正規表示式 Regular Expression)作者 (活力花俏草兒仔政﹞O花俏)時間16年前 (2009/07/11 23:32), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串2/4 (看更多)
: 內容很簡單: <div>我是測試行</div> <div>我是美女圖<img src="http//beauty.jpg" /></div> <div>我是<a href="http//yaya.com">無聊的測試</a></div> : 想要問一下…有沒有辦法用一次的preg_match_all() : 就抓到 : [1] => "我是測試行" : [2] => "我是美女圖<img src="http:/beauty.jpg" />" : [3] => "我是<a href="http:/yaya.com">無聊的測試</a>" 耶逗…補充說明~ 我原本用的pattern 是 "/<div>(.*)<\/div>/" 餵上面的內容他會抓到的是 [1] => "我是測試行</div> <div>我是美女圖<img src="http//beauty.jpg" /></div> <div>我是<a href="http//yaya.com">無聊的測試</a>" 也就是說,他抓到的是最長匹配字串… 但這不是我要的><~ 目前我是另外用php split()的方式把</div>截掉,再針對每個<div>去處理 但…應該有更漂亮的方法吧@@~ 例如我pattern中的(.*)可以指定說中間的字串不包含</div>的寫法之類的… 還是說在"/<div>(.*)<\/div>/"的結尾可以加什麼tag之類的? 感謝大家的幫助><~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.87.174

07/11 23:51, , 1F
原來那篇的推文就有解法了
07/11 23:51, 1F

07/12 01:04, , 2F
= =,我照你原本的語法…沒問題啊…不會抓到<div>啊
07/12 01:04, 2F

07/12 01:05, , 3F
preg_match_all("/<div>(.*?)<\/div>/",文字,存放變數)
07/12 01:05, 3F

07/12 01:05, , 4F
變數[1][0] 變數[1][1]變數[1][2] 語法沒問題啊= =
07/12 01:05, 4F

08/07 09:30, , 5F
(.*) greedy match , (.*?) non-greedy match
08/07 09:30, 5F
文章代碼(AID): #1AMB2ZDe (RegExp)
文章代碼(AID): #1AMB2ZDe (RegExp)