preg_match 、preg_match_all (正規表現にマッチしたデータ抽出)

(PHP 4, PHP 5)

preg_match — 正規表現によるマッチングを行う
preg_match_all — 繰り返し正規表現検索を行う

【構文】
preg_match_all
($pattern , $subject [, $matches [, $flags = 0 [, $offset ]]]  )

<<引数>>
$pattern = ‘/^def/’;  //検索パターン
$subject “abcdef”; //検索対象文字列
$matches          //検索結果を代入する器
$flags    PREG_PATTERN_ORDER , PREG_SET_ORDER ,      //
$offset

 

http://frozentuna.hatenablog.jp/entry/2012/06/27/223633
preg_match関数のパターン変数について
$pattern = “/ ~~/”

のように/をデリミタに使っていたが、実は括弧とか記号でもいいらしい。

・サブパターンの有効活用

PHPの正規表現において( )で囲われた部分はサブパターンとして機能する。

preg_match関数ではマッチした部分文字列を保存すると、サブパターンの部分も保存してくれる。

例)<p>タグで囲われたテキストを抽出する

$text = “<p>ここを取り出したい</p>”;

$pattern = “{<p>(.*)<\/p>}”;

preg_match($pattern,$text,$match);

こうすると一致結果が$matchに入り、

$match[0] = “<p>ここを取り出したい</p>”

$match[1] = “ここを取り出したい”

となる。

一気にタグを除去した情報まで手に入れられるのでうまく使いたいところ。

タイトルとURLをコピーしました