日本語に関する正規表現の判定がうまくいかない原因のひとつとして、正規表現エンジンが使用する文字コードが適切ではないことがあります。
下記スクリプトで正規表現処理に使う文字コードを確認することができます。
echo mb_regex_encoding();
この結果がISO-8851等になっていることがあります。
例として、正規表現処理に使う文字コードをUTF-8にしたい場合は以下のようにします。
mb_regex_encoding('UTF-8');
- 参考リンク
- -mbregex(マルチバイト正規表現)で気をつけるべきこと
http://wiki.poyo.jp/read/PHP/tips/mbstring/caution_mbregex
- -鬼車