PHPで正規表現を使って文字列からパターンマッチを見つける方法

preg_match();を使います。

また下記に紹介しますが、preg_match_all();というものもあります。

両者の違いは、

  • preg_match();最初の一つが見つかると処理を停止します。
  • preg_match_all();はパターンに一致するものをすべて見つけてくれます。

です。

基本的な使い方

echo preg_match("/d/", "abcdefghidjk");

//またパターンマッチと文字列を変数にタグ付けしておけば以下のようにできます。

$pattern = '/d/';
$string = 'abcdefghidjk';
echo preg_match($pattern, $string);

マッチしたものを取り出すこともできます

これ結構重宝します。データを抽出に利用できます。

第三の引数に変数を記載しておけば、その変数にマッチしたものがタグ付けされます。
戻り値は配列で返ってきますので、値の取り出しには注意が必要です。

echo preg_match("/d/", "abcdefghidjk", $x);
//echo $x;→NG
var_dump($x);
print_r($x);

//同様にpreg_match_all();でも使えます

echo preg_match_all("/d/", "abcdefghidjk", $x);
//echo $x;→NG
var_dump($x);
print_r($x);
//こちらは値が多いのが確認できるかと思います

正規表現が使えるとプログラミングの幅と利便性がグッと上がります。少し取っつきにくいかもしれませんが、少しの学習で効果が発揮させるのでコスパはとてもいいです。