[PHP-users 28815] Re: 正規表現に関する質問

西浦智明 tomoaki_nishiura @ dwango.co.jp
2006年 3月 25日 (土) 14:37:08 JST


お疲れ様です。
西浦です。

> とかはちゃんと出ます。どうも\を入れるとダメみたいです。
> マルチバイトでないときはうまくいきました。

\\2の\は必要ですが、\(の\はここでは必要ありません.

「マルチバイトでないときは」と書かれているので、
マルチバイト文字用の関数、mb_ereg_replace を使用すれば
解決するのではないでしょうか?

ちなみにreg_replaceを使用するのであれば{6}では足りません.
SJISで10バイトです.

  $test = ereg_replace(
    "(^[約定金額: ]{10})([0-9円]+).*", 
    "\\2",
    $test
  );

mb_ereg_replaceで書くなら{6}でOKです.

  mb_regex_encoding( "SJIS" );
  $test = mb_ereg_replace(
    "(^[約定金額: ]{6})([0-9円]+).*", 
    "\\2",
    $test
  );

西浦 智明



PHP-users メーリングリストの案内