看板 RegExp 關於我們 聯絡資訊
: 內容很簡單: <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
bibo9901:原來那篇的推文就有解法了 07/11 23:51
thitbbeb:= =,我照你原本的語法…沒問題啊…不會抓到<div>啊 07/12 01:04
thitbbeb:preg_match_all("/<div>(.*?)<\/div>/",文字,存放變數) 07/12 01:05
thitbbeb:變數[1][0] 變數[1][1]變數[1][2] 語法沒問題啊= = 07/12 01:05
kornelius:(.*) greedy match , (.*?) non-greedy match 08/07 09:30