ブルーシュ

IT技術の勉強記録

ホーム > Tips > サーバーサイド

正規表現でHTMLタグを抜き出したいとき

, ,

PHPのpreg_matchを使ってHTML文書からタグを抜き出したいとき!
<a>タグだけほしいときを例にしてみます。

<div>
<a href="https://example.com/japanese">日本語のページ</a>
</div>

この場合は

/<a.*</a>/

これでいいんですが、複数のタグが存在する場合。

<div>
<a href="https://example.com/japanese">日本語のページ</a>
<a href="https://example.com/italian">イタリア語のページ</a>
</div>

検索結果は、このように

$m[0] = <a href="https://example.com/japanese">日本語のページ</a><a href="https://example.com/italian">イタリア語のページ</a>>

認識されてしまいます。
そんなときは、これ!

/<a.*?</a>/

*のあとに?マークを入れます。

* 0回以上の繰り返し
? 0回または1回の出現

という意味なので、組み合わせると最短で検出されます!

本日のアイキャッチ

藤の花
ぱくたそ
正規表現でHTMLタグを抜き出したいとき #サーバーサイド #ウェブデザイン #ウェブ制作 #WEBデザイン #WEB制作 #HTMLタグ #PHP #正規表現

作者の似顔絵

秋田市在住のプログラマーです。
プログラミングを始めて18年、まだまだ日々勉強。調べたことをブログにまとめていきます。
記事の感想・質問・間違い指摘などはツイッター ( @blooshcompany ) へお願いします。