正規表現メモ - タグの検索 / URLの検索

データベース化するのは馬が38万頭もいることがわかり(笑)あきらめました。そこで、G1などのレースに絞ってそこに出場してきた馬の中で3着以内のものの血統を調べていこう!って方針になりました。

まぁ、その前に正規表現でHTMLタグ調べていった方が楽なんじゃないか、ということで正規表現について学ぼうと思います。まず、一般的なHTMLのタグをサーチするには、
.*?
という表現が重要になってきます。正規表現において
. : 何かの文字
* : 直前の文字が0文字以上
.* : ナンカ文字があるよ
? : 直前の文字が0個か1個→最小マッチング
とやることで、たとえば一般タグを検索の場合、
<.*?>
とすると、最小マッチングにより
<font color="red">赤いよ</font>
本当は_線部のところのみマッチしてほしいのに、太字にマッチしてしまうのを防げます。(PHPでは、基本的に最大マッチングを行います)
また、URLの検索をしたい場合には、
"http:\/\/[\w\d/%#$&?()~_.=+-]+"
とすることでOKです。\dは数字、\wはアルファベットを意味します。+は直前が1文字以上なので、[]内の文字が何文字かあるところまでURLとなるわけです。
最後はpreg_match()関数です。
int preg_match ( string $pattern, string $subject [, array &$matches [, int $flags [, int $offset]]] )
と与えられています。たとえば、
$pat = "<title>(.*?)<\/title>";
if ( preg_match ( "/".$pat."/i", $HTML, $match ) ){
  echo ( $match[1] );
}
とすれば、サイトのタイトルを抜き出せます。

さて、それじゃまたプログラムの作成の方に戻りま~す。  

トラックバック(0)

このブログ記事を参照しているブログ一覧: 正規表現メモ - タグの検索 / URLの検索

このブログ記事に対するトラックバックURL: http://www.hecomi.com/mt/mt-tb.cgi/7