中国語は、中国本土、台湾、シンガポール、マレーシア、その他の地域で人気のある言語であり、その執筆は漢字に依存しています。漢字は、ユニークで複雑なストロークとラジカルで構成されており、主に意味を表現するために音声と語順の一部に依存して、比較的単純な文法構造を持っています。
中国語は、ストレージと処理のためにコンピューターでエンコードする必要があります。一般的に使用されるエンコーディング方法は、主に次のとおりです。
GB2312エンコーディング
ユニコードエンコーディング
その中で、GB2312は二重バイトエンコーディングであり、一般的に使用される漢字やシンボルを含む約6763個の漢字をカバーしています。 Unicodeエンコーディングには世界中のすべての文字が含まれており、漢字は通常2バイトを占有します。
PHPでは、正規表現を使用してユニコード範囲の漢字を一致させることができ、それにより中国語のみを保持する機能を実現できます。
// テキストで中国語以外の文字を削除します
function remove_non_chinese($text) {
// 漢字のみが保存されています
$pattern = '/[\x{4e00}-\x{9fa5}]+/u';
return preg_replace($pattern, '', $text);
}
上記のコードでは、ユニコードエンコード範囲\ x {4e00} - \ x {9fa5}を使用して漢字を一致させ、フラグuはユニコードモードが採用されることを意味します。
$text = 'Hello, こんにちは,私はです PHP 開発者。';
非中国語の文字を削除するために関数を呼び出す:
$chinese_only = remove_non_chinese($text);
echo $chinese_only; // 出力:こんにちは私はですPHP開発者
実行中の結果は、英語とスペースが正常にフィルタリングされ、漢字のみが残っていることを示しています。
この方法は、主に単純化された漢字と一致し、従来の漢字に対するサポートは限られています。さらに、期間やコンマなどの句読点も削除されます。特定のアプリケーションを適用する場合、正規表現は、実際のシナリオに適合することを保証するためのニーズに応じて調整できます。