[PHP-dev 524] Re: [Fwd: Japanese: mb_split broken?]
Moriyoshi Koizumi
php-dev@php.gr.jp
Thu, 03 Oct 2002 11:47:23 +0900
小泉です。
> > 標準関数のereg_*()などをmb_*()に置き換える事が最終目標
> > (勝手にそう思っています)なのでこっそり変えてNEWSに入れて
> > しまうのも手かもしれません。
> >
> > # 塚田さん、デフォルト動作を変えると困りますか?
> >
>
> あまり深く考えていなかったのですが、
> 拡張モードというのに関して、POSIX の 拡張正規表現(Extended
> Regular Expression)と、Perl(あるいはRuby)の x オプションは
> 意味が違うのでしょうか?
> ereg_*() でも REG_EXTENDED というオプションを付けています。
Ruby は Emacs 用に書かれた rms のコードを元にしていて、
Perl と PHP のものは、4.4 BSD 時代に書かれた Henry Spencer の regex が元の
ようです。
だから、パラメータの解釈が違うのは仕方が無いようです。
> また、POSIX準拠を目標にするなら、今のライブラリが適切なのか
> を検討してみる必要があると思います。
> 文字クラスとロケールの関係とか、いろいろあると思います。
これに関しては、posix 準拠というわけではありませんが、
perl がデファクトスタンダードなことを考えると、
廣川さんが以前
http://ns1.php.gr.jp/pipermail/php-dev/2002-January/000197.html
上記のようなことをおっしゃっていたみたいですし、
mbstring を pcre に対応させる方向を検討してみるのも一つの道かと思います。
さて、話を戻しますと、
私は mb_split と mb_ereg に関しては、拡張モードにしない方向を望みます。
また、mb_ereg_replace や mb_ereg_match のように、
オプションが指定できる関数に関しては、
デフォルトで拡張モードにならないようにした方がよいと思うのですが。
いかがでしょうか?