[PHP-users 11683] Re: 文字列のマッチングについて

Moriyoshi Koizumi php-users@php.gr.jp
Fri, 22 Nov 2002 05:16:45 +0900


小泉です。

mb_ereg 系列は Shift_JIS でも問題なく使えます。
あとは、内部エンコーディングが UTF-8 でもよければ preg系も大丈夫みたいです。

# ereg 系も EUC だから必ずしも大丈夫ということはありません。

(例) $result = preg_match("/日本語/u", "これは日本語ですか?");

"u" をつけてください。"U"(大文字) ではありません。

蛇足ですが、実は、ソースを見る限りではテーブルを追加するだけで
pcre を UTF-8 以外のマルチバイト文字に対応できるようなんですけど、
なにしろそのあとが面倒なので…。こんな感じになりそうですし。

1. パッチを作成する
2. pcre の開発者にコンタクトとる
3. パッチが組み込まれる (たぶんこれが一番の難所)
4. PHP ソースに更新された PCRE のバージョンを組み込んでもらう
5. 幸せ(?)

Osamu Shigematsu <m5issige@mr.hitachi-medical.co.jp> wrote:

> 重松です。こんにちは。
> 
> > #EUCだと問題なく表示されます :)
> 
> 正規表現のメタ文字を考慮してないことについては、言わずもかなですが、
> せっかく国際化された版を使っているわけだし、
> ereg() でなくて、mb_ereg() を使ったらどうかと思うのですが。
> 
> # ruby-1.6.7 regex.h の 90 行目に MBCTYPE_SJIS が定義してあるから、
> # SJIS も問題なく使えると思うんですけど。>mb_ereg()
> # ウソだったら、ごめんなさい。
> 
> -- 
> Osamu Shigematsu <m5issige@mr.hitachi-medical.co.jp>
> 
> 
> _______________________________________________
> PHP-users mailing list
> PHP-users@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users