PHPプログラムに関する各種メモ書き

日本語が入った正規表現で検索、置換を行う

日本語が入った正規表現を使って検索、置換を行うには preg_match , preg_replace を使う

その際文字化けが起こってしまうことが多いが、原因は【/】をエスケープし忘れている

ところにあると思うので、【/】はきちんとエスケープしよう。

1 日本語エンコードを指定する

mb_regex_encoding('UTF-8'); // もしくは SJIS, EUC-JP

2 検索する文字( $find_text )と区切り文字(/)はあらかじめエスケープしておく

$find_text = preg_quote($find_text, '/');

3 正規表現を使って置換を行う

$string=preg_replace("/($find_text)/", "置換する文字列",$string );

これで文字化けもおこらないと思います。

エンコードUTF-8で日本語を使う場合は u オプションを使用します

$string=preg_replace("/($find_text)/u", "置換する文字列",$string );

関連エントリー

No.287
02/09 16:10

edit

正規表現
日本語