推 lg31cm:(.*?) 07/11 03:40
→ lg31cm:不過事實上.*?算是很慢的方法 07/11 03:41
→ lg31cm:不過最好解釋就是了 07/11 03:41
→ bcse:可以示範一下快的方法嗎? 07/11 09:11
→ grassboy2:囧a 那這是唯一的方法嗎? 不過還是謝謝一樓的推文~ 07/11 09:27
推 thitbbeb:不知道你是什麼問題= =,我測你的語法都正確的抓到你要的 07/11 14:30
> -------------------------------------------------------------------------- <
作者: grassboy2 (活力花俏草兒仔政﹞O花俏) 看板: RegExp
標題: Re: [問題] preg_match_all抓取所有<div>....</div>
時間: Sat Jul 11 23:32:48 2009
: 內容很簡單:
<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
> -------------------------------------------------------------------------- <
作者: X700 (X700) 看板: RegExp
標題: Re: [問題] preg_match_all抓取所有<div>....</div>
時間: Sun Jul 12 00:10:34 2009
※ 引述《grassboy2 (活力花俏草兒仔政﹞O花俏)》之銘言:
我也有問題和這位仁兄相似,但是我想做的就是巢狀時要如何正確抓資料呢?
如下的例子:
<div class="test">
<div>我是大巢
<div>我是小巢</div>
</div>
</div>
希望可以抓到div class="test"內的資料:
<div>我是大巢
<div>我是小巢</div>
</div>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.161.172.242
推 thitbbeb:<div\s*class=\"test\">([\W\w]+)<\/div> 07/12 01:08
→ bcse:我有個小問題,[\W\w]+跟.+有什麼不同? 07/12 08:05
推 thitbbeb:[\W\w]+是指全部內容,.+是指不包含換行以外的任何字 07/12 13:10
推 lg31cm:如果要比對巢狀tag,MRE PHP那章有個實際範例 07/12 13:39
→ lg31cm:php's preg 可以用遞迴的方式比對 07/12 13:39
→ X700:請問一下,MRE PHP是指? 07/12 20:50
> -------------------------------------------------------------------------- <
作者: kornelius (c9s) 看板: RegExp
標題: Re: [問題] preg_match_all抓取所有<div>....</div>
時間: Sat Jul 25 21:25:45 2009
請用 Perl 的 Web::Scraper 模組 :p
http://search.cpan.org/dist/Web-Scraper/lib/Web/Scraper.pm
就可以做到 tree structure 的 parsing
只需要給定 css selector 即可
當然也有 xpath 做 selector 的後端。
※ 引述《X700 (X700)》之銘言:
: ※ 引述《grassboy2 (活力花俏草兒仔政﹞O花俏)》之銘言:
: 我也有問題和這位仁兄相似,但是我想做的就是巢狀時要如何正確抓資料呢?
: 如下的例子:
: <div class="test">
: <div>我是大巢
: <div>我是小巢</div>
: </div>
: </div>
: 希望可以抓到div class="test"內的資料:
: <div>我是大巢
: <div>我是小巢</div>
: </div>
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 113.61.194.203
※ 編輯: kornelius 來自: 113.61.194.203 (07/25 21:26)
推 othree:Perl真是什麼都有XD 07/27 16:07
推 lg31cm:不過事實上perl的regex用法最為變態XDDDD 07/28 00:47
推 arrack:perl包山包海 07/30 19:52