ホームページ >バックエンド開発 >PHPチュートリアル >PHP で正規表現を使用して中国語の文字と一致させる方法
PHP では、正規表現は一般的に使用される文字列一致ツールであり、文字列が特定の形式に準拠しているかどうかを判断し、入力値の妥当性を検証するために使用できます。中国語の文字を処理する場合、中国語の文字と英語の文字はエンコード方法が異なるため、正規表現の一致ルールをそれに応じて調整する必要があります。この記事では、PHP で正規表現を使用して中国語の文字を照合する方法を紹介します。
1. 中国語の文字エンコーディングを理解する
PHP で一般的に使用される文字エンコーディングは、UTF-8 と GBK です。 UTF-8 は「可変長エンコーディング」です。つまり、異なる文字は異なる長さを持ち、異なる文字を表すために 1 ~ 4 バイトが使用されます。 GBK は、各文字が 2 バイトで表される「固定長エンコーディング」です。
UTF-8 エンコード規則は比較的複雑であるため、中国語の文字を照合する場合、GBK エンコードを使用して照合できます。 PHP では、mb_convert_encoding() 関数を使用して、文字列を UTF-8 から GBK エンコーディングに変換できます (例:
$str = "中文"; $str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
2)。漢字
$str = "中文"; $str_gbk = mb_convert_encoding($str, "GBK", "UTF-8"); preg_match("/[x{4e00}-x{9fa5}]/u", $str_gbk, $match); echo $match[0];出力結果は次のとおりです:
中
複数の中国語文字に一致
$str = "中文编程真有意思"; $str_gbk = mb_convert_encoding($str, "GBK", "UTF-8"); preg_match("/[x{4e00}-x{9fa5}]{2,}/u", $str_gbk, $match); echo $match[0];出力結果は次のとおりです:
中文编程真有意思
中国語の文字とその他の文字を一致させる
$str = "中文AI编程真有意思123"; $str_gbk = mb_convert_encoding($str, "GBK", "UTF-8"); preg_match("/[x{4e00}-x{9fa5}w]+/u", $str_gbk, $match); echo $match[0];出力結果:
中文AI编程真有意思1233. 一般的に使用される正規表現関数
preg_match()
$str = "中文编程真有意思"; $str_gbk = mb_convert_encoding($str, "GBK", "UTF-8"); preg_match("/[x{4e00}-x{9fa5}]+/u", $str_gbk, $match); echo $match[0];出力結果は次のとおりです:
中文编程真有意思
preg_match_all()
$str = "PHP是一门非常有用的编程语言,可以用来开发各种Web应用"; $str_gbk = mb_convert_encoding($str, "GBK", "UTF-8"); preg_match_all("/[x{4e00}-x{9fa5}]+/u", $str_gbk, $match); print_r($match[0]);出力結果は次のとおりです。
Array ( [0] => PHP是一门非常有用的编程语言 [1] => 可以用来开发各种Web应用 )
preg_replace()
$str = "我爱编程,编程使我快乐!"; $str_gbk = mb_convert_encoding($str, "GBK", "UTF-8"); $new_str_gbk = preg_replace("/[x{4e00}-x{9fa5}]+/", "", $str_gbk); $new_str = mb_convert_encoding($new_str_gbk, "UTF-8", "GBK"); echo $new_str;出力結果は次のとおりです:
,使我快乐!IV. まとめ以上は、PHP で正規表現を使用して中国語の文字を照合する方法であり、正規表現を使用して妥当性を検証できます。入力値の式が実装されています。使用する場合は、漢字のエンコード方式に注意し、必要に応じて対応する正規表現関数を選択して使用する必要があります。
以上がPHP で正規表現を使用して中国語の文字と一致させる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。