2010年6月16日

[PHP-users 35238] Re:preg_match_allによる要素の抽出

Setoさん、柳本さん、たけぐちさん

早速のご回答ありがとうございます。
大感謝!!
(昨日からずっと試行錯誤してました)

そうですね、いっぱつでやろうとすると無理な場合は、
段階的にするのが良いですね。


非常に勉強になりました。
ありがとうございました。
tk

Ryo Takeguchi wrote:
> こんにちは。
> たけぐちです。
>
> セールは考えないとした場合は
> preg_match_all("/<a name=\"(\d*)\" href.*?<span
> class=\"teika\">定価:(.*)円<\/span><br \/>/s", $html_source, $matches,
> PREG_SET_ORDER);
> に
> /s を /Us
> で
> preg_match_all("/<a name=\"(\d*)\" href.*<span
> class=\"teika\".*定価:(.+)円<\/span><br \/>/Us", $html_source, $matches,
> PREG_SET_ORDER);
> で一応でます。
>
> 正規表現で全部引っ張ろうとするとぐちゃぐちゃになってしまう(自分だけかもしれませんが)ので、Setoさんのおっしゃる通りデータを加工したほうがいいかと。
>
> セールが有る無しだけで記述の揺れがないと考えれば、
>
> <a から 次の<a までの間が一つのデータと考え分割
>
> それを繰り返しで
> spanで指定されているclassと
> <span></span>含まれる文字列を取得
>
> 必要なものだけとりだしてハッシュなりに入れる。
>
> 対象の内容によりけりですが、htmlは改行の意味が無く処理する上で
> 邪魔なことがあるので
> $html_source=preg_replace("/\n/",'',$html_source);
> などで捨ててます。
> あ、preg_replaceである必要はないです。好みです。
>
> 正規表現はマッチする最初のほうからちょこちょこ広げていったほうが作りやすいかと思います。
>
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2010年6月16日 17:56
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/96397
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。