3. 以下では、utf-8 環境での中国語のマッチングを紹介します。上記と同様に、Unicode エンコード テーブルを使用して中国語の一致を判断することもできます。エンコード表からわかるように、中国語のエンコード範囲は 0x4e00-0x9fa5 であるため、正規表現は次のように記述できます:
"/[x{4e00}-x{9fa5}]/u"、x{nnnn} は文字の 16 進形式を表します。詳細については、PHP マニュアルを確認してください。モード修飾子 u に特に注意してください。PHP マニュアルには次のように記載されています:
u (PCRE_UTF8) この修飾子は、Perl と互換性のない PCRE の追加機能を有効にします。パターン文字列は UTF-8 として扱われます。この修飾子は、Unix では PHP 4.1.0 以降、win32 では PHP 4.2.3 以降で使用できます。 PHP 4.3.5 以降、パターンの UTF-8 の有効性がチェックされます。これはまさに正しい一致に必要なものです。実際、UTF-8 環境で文字列と一致させるためにメタキャラクターを使用する場合は、修飾子 u を追加するのが最善であることも思い出してください。これは単なる経験です。
ここに 2 つの例があります:
(1) ANSI プログラミング環境の場合:
$strtest = “yyg 漢字 yyg”;
$pregstr = "/([".chr(0xb0)."-".chr(0xf7)."][".chr(0xa1)."-".chr(0xfe)."])+/私";
if(preg_match($pregstr,$strtest,$matchArray)){
echo $matchArray[0];
}
//出力: 漢字
(2) Utf-8 プログラミング環境の場合:
$strtest = “yyg 漢字 yyg”;
$pregstr = "/[x{4e00}-x{9fa5}]+/u";
if(preg_match($pregstr,$strtest,$matchArray)){