【PHP】preg_matchで日本語を使うとマッチしない場合の対処方法です

PHPのpreg_match関数を使って正規表現によるマッチングを行うときに、日本語で検索すると意図した通りマッチングしなかったので、その対処法を紹介します。

検索パターンに日本語を使う場合の対処法

検索するパターンに日本語を使いたい場合は、パターン修飾子のu (PCRE_UTF8)を使います。

/検索するパターン/u

例として、晴天を抜き出して見ます。

<?php
$subject = "今日は晴天です。";
$pattern = '/今日は(.+?)です。/u';
preg_match($pattern, $subject, $matches);
echo $matches[1];

以上です。