PHPのpreg_match()関数を使用することで、任意の文字列の抜き出しができます。
例えば、
『ハヤシ』もあるでよ
みたいな文字があったとします。
ここでハヤシだけ欲しい、なんて場合どうするか?
こんな方法があります。
<?php
$str = "『ハヤシ』もあるでよ";
if (preg_match('/『(.+)』.*/', $str, $matches)) {
echo $matches[1];
}
これを実行します。
ハヤシ
という結果になるのがわかります。
preg_match()の使い方は、第一引数に検索パターンを入れます。そして第二引数は検索対象文字列。第三引数にはパターンにマッチした情報が入ります。
ここでなぜ$matches[1]という表現をするのか?
試しに以下のプログラムを実行してみます。
<?php
$str = "『ハヤシ』もあるでよ";
if (preg_match('/『(.+)』.*/', $str, $matches)) {
print_r($matches);
}
そうすると結果はこうなります。
Array
(
[0] => 『ハヤシ』もあるでよ
[1] => ハヤシ
)
気付いたかと思いますが、0番目にはマッチした文字全体が入っています。
そして1番目には、今回欲しかった情報である、ハヤシが入っています。
さてどうしてハヤシだけ抜き出せたのか?
それは、
/『(.+)』.*/
という書き方で『』の中に丸カッコ()でくくった箇所(.+)があります。
これはサブパターンというもので、複数設定でき、今回は1つだけサブパターンがあるので$matches[1]という書式でハヤシを取得することができた、というわけです。
----- 著 書 の 紹 介 ------
◆kyo asahinaの著書◆