ホーム > ブログ > PHP 正規表現を扱う preg_match_all

Webデザイナー ブログ

PHP 正規表現を扱う preg_match_all

2010年3月19日(php)

ちょっとお仕事である程度フォーマット化された複数ページの
データを抽出したかったので、正規表現を利用して、
インデックスからURLリストを作成して、各ページの
特定のタグ内にあるテキストを取得してリストにするというPHPを書きました。

そこで利用したのが正規表現です。
いろいろ正規表現用の関数があるようなのですが、
preg_match_allが結構便利でした。

$str = “htmlソースが入ります”;
preg_match_all(“/<div>(.*?)< \/div>/”, $str, $array);

foreach($array[1] as $var) {
 echo $var;
}

関数の第一引数がマッチングさせたい文字列を入れて、
次の引数は検索対象となる引数です。
最後の引数がとても便利なのですが、
二次元配列([0][0]など)になるのですが、
$array[0]の方には検索内容が代入されます。
$array[1]の方には()でくくった中身が代入されます。
つまり、divの中身です。

正規表現自体はあまりまだ得意じゃないですが、
もっと細かく勉強すれば、たぶん取得できない文字列はなくなるでしょうw

Dreamweaverの検索・置換でも正規表現は利用できるので、
軽いもので知っておくとかなり便利だと思います。

人気ブログランキングへ
応援お願いします!

コメントをどうぞ