.*?
という表現が重要になってきます。正規表現において
とやることで、たとえば一般タグを検索の場合、. : 何かの文字
* : 直前の文字が0文字以上
.* : ナンカ文字があるよ
? : 直前の文字が0個か1個→最小マッチング
<.*?>とすると、最小マッチングにより
<font color="red">赤いよ</font>本当は_線部のところのみマッチしてほしいのに、太字にマッチしてしまうのを防げます。(PHPでは、基本的に最大マッチングを行います)
"http:\/\/[\w\d/%#$&?()~_.=+-]+"とすることでOKです。\dは数字、\wはアルファベットを意味します。+は直前が1文字以上なので、[]内の文字が何文字かあるところまでURLとなるわけです。
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] );
}
このブログ記事を参照しているブログ一覧: 正規表現メモ - タグの検索 / URLの検索
このブログ記事に対するトラックバックURL: http://www.hecomi.com/mt/mt-tb.cgi/7
Introduction
凹みTipsはHTML、CSS、PHP、ActionScript3.0、JavaScriptからAjaxまで初心者の凹が試行錯誤繰り返しながら勉強していくサイトです。一緒に勉強していきましょう!
Categories
Recent Entries
Monthly Archives