重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

PHP4で、文字列の中からマッチしたものを抜き出したいのですが、なかなか上手いこといきません。

$str = "<a href=http://www.abc.com/><b>ABC</b>company</a>";
preg_match("/<a href=(.*)>(.*)<\/a>/i",$str,$str_reg);

http://www.abc.com/
<b>ABC</b>company の2つを抜き出したいのですが、
<b>タグが邪魔をして抜き出せません。
どうすれば上記2つを抜き出せるのでしょうか?

A 回答 (2件)

最初のかっこはタグの終了を見ればいいわけですから


汎用性を考えると「.*」より「[^>]*」にすべきですよね?

また、タグの要素は「""」で囲まれていることも多いので
以下のようにすると使い勝手が良いのではと思います。

/<a href=\"?([^>]*)\"?>(.*)<\/a>/

未確認なので、間違ってたらごめんなさい。
    • good
    • 0

preg_match("/<a href=(.*?)>(.*)<\/a>/i",$str,$str_reg);


とか。

ひと文字加えただけ。
    • good
    • 0
この回答へのお礼

(.*?)だと、non-greedy(でしたっけ?)になるでしたね。参考になりました。ありがとうございます。

お礼日時:2004/06/30 13:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!