街中で見かけて「グッときた人」の思い出

正規表現初心者です。ご教授よろしくお願いします。


<a href=http://hoge.com/hoge>hoge</a>
<a href=http://hoge.com/hoge>hoge<br>hoge</a>


以上の<a href>リンクから、それぞれURLだけを抽出したいのですが
うまくできません。



ereg("<a href=(.+)>(.+)</a>",$hoge,$a);
echo $a[1];


で、1つ目はURL抽出できたのですが
2つ目のように<br>があると『 http://hoge.com>hoge 』と表示されてしまいます。

このような場合、どのようにして抽出すればよいのでしょうか??

A 回答 (1件)

最短マッチってご存知ないですか?


こんな感じでどうでしょう?

<?
$str=<<<eof
<a href=ttp://hoge.com/hoge>hoge</a>
<a href=ttp://hoge.com/hoge>hoge<br>
hoge</a>
eof;
preg_match_all("/<a href=(.+?)>(.+?)<\/a>/mis",$str,$matches);
print "<pre>";
print_r($matches);
print "</pre>";
?>
    • good
    • 0
この回答へのお礼

なるほど~~!
ありがとうございました

お礼日時:2008/05/25 01:08

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


おすすめ情報