正規表現の中で日本語(マルチバイト文字)を使ってマッチさせるには、パターン修飾子というものを使う必要がありました。$regex の最後に記述している小文字の u がパターン修飾子です。u は$regex を UTF-8 として扱うようになります。
1 2 3 4 5 6 7 |
<?php $text = '私の名前は佐藤です。'; $regex = '/私の名前は(.+)です。/u'; preg_match($regex, $text, $matches); var_dump($matches); |
var_dump($matches) の結果は下記のようになります。
1 2 3 4 5 6 7 |
array(2) { [0]=> string(30) "私の名前は佐藤です。" [1]=> string(6) "佐藤" } |
参考
http://php.net/manual/ja/reference.pcre.pattern.modifiers.php
[…] ◎参考サイト [PHP]preg_matchの正規表現の中で日本語(マルチバイト文字)を使う « Codaholic […]
[…] ■[自分用メモ]正規表現を使ってn文字ごとに改行する。 [PHP]preg_matchの正規表現の中で日本語(マルチバイト文字)を使う […]