[PHP-users 11326] Re: SJISコードでの比較

Osamu Shigematsu php-users@php.gr.jp
Wed, 6 Nov 2002 22:55:21 +0900


重松です。こんにちは。

On 2002.Nov.6, at 21:17 Asia/Tokyo, d-ushijima wrote:

> このような比較がしたいのですが無理なのでしょうか?
> 環境がPHP3なのでマルチバイト文字列の扱いに戸惑っています。

できなくもないと思うんですが、ご自身で気付いている通りだと思いますが、
たくさんのいわゆる機種依存文字があると、その数だけ、そして、
文字列が長いと、ものすごくかったるい比較を行わないといけなくなりますが、
そういう処理を軽減するために、「正規表現 (Regular Expression)」
という手法があります。

マルチバイト文字に対応したものを使えば、(さもないと、不適切な位置で文字を
分割して、マッチングが不正確になる可能性があります)、
[あ-ん] とすると、文字コードが「あ」〜「ん」までの文字集合をまとめて、
表現したこととなり、そういう独自拡張の文字コードの範囲を指定することで、
該当範囲の文字が含まれるか否かを素早く照会できます。

最初は取っ付きづらいかと思いますし、PHP の場合、ereg 系や
Perl 互換, Ruby 互換 (日本語対応) など数種類が利用できるために、
ちょっとややこしいかもしれませんが、がんばって調べてみて下さい。

-- 
Osamu Shigematsu