前々回、テキストからURLを取り出す正規表現を紹介したが、 今回は、ネット上のコンテンツから <img> タグで指定された 画像URLを取り出すプログラムを作ってみることにする。 正規表現を少し変更するだけで、音声や動画ファイルのURLを取り出すこともできる。
<img src=〜> の表現形式
<img> タグの src 部分の URL 指定は、前々回で紹介した「URL で使える文字」の通りだが、
相対指定――'http://' ではじまらない――があることに留意する必要がある。
また、拡張子は画像限定なので、jpg, jpeg, gif, png, bmp の5種類を対象とすることにする。
これを正規表現で表すと以下のようになる。
/\<img(.*)src=\"?([\-_\.\!\~\*\'\(\)a-z0-9\;\/\?\:@&=\+\$\,\%\#]+(jpg|jpeg|gif|png|bmp))/i
拡張子指定を変更することで、音声や動画ファイルのURLを取り出すこともできる。こうしたカスタマイズのしやすさも、正規表現の強みである。
また、詳しいことはプログラムの説明で述べるが、今回は preg 系の正規表現関数を使うため、パターン全体をスラッシュ '/' で囲む必要がある。
今回使った正規表現
- ?
- 直前1文字の0または1回の繰り返し。
- [ ]
- 文字クラス。
この中に記述された文字の並びのうちの1文字を表す。
- -
- 文字の範囲指定。
a-z はアルファベット小文字すべてに、0-9は数字すべてにマッチする。
- +
- 直前1文字の1回以上の繰り返し。
- (a|b)
- aまたはbにマッチする。
- /.../i
-
Perl互換正規表現では、全体をスラッシュ '/' で囲む。最後の 'i' は、大文字・小文字の両方にマッチすることを意味する。
ここでは、文字クラス '[a-z]' に対応するアルファベット大文字や、サブクラス '(jpg|jpeg|gif|png|bmp)' に対応する大文字の拡張子にもマッチする。
この正規表現を使ったサンプル・プログラムを次のページに掲載する。
(この項つづく)
| 2007年01月17日更新 | ||
| <<前へ | <目次> | 次へ>> |
| 戻る | 【関連ページ】 | |