ホームページ > バックエンド開発 > PHPの問題 > PHPで正規表現を使用して中国語の文字のみに一致させる方法

PHPで正規表現を使用して中国語の文字のみに一致させる方法

青灯夜游
リリース: 2023-03-17 22:20:02
オリジナル
3561 人が閲覧しました

PHP では、正規表現 "/[\x{4e00}-\x{9fff}] /u" と preg_match_all() 関数を使用して、中国語の文字のみに一致させることができます。構文 "preg_match_all( "/[ \x{4e00}-\x{9fff}"。preg_match_all() 関数は、正規表現に一致する文字列内のすべての結果を検索します。"/[\x{4e00}-\x{9fff} }] /u "文字列をフィルタリングして、中国語の文字のみを取得できます。

PHPで正規表現を使用して中国語の文字のみに一致させる方法

このチュートリアルの動作環境: Windows 7 システム、PHP 8 バージョン、DELL G3 コンピューター

php では、正規表現 "/[\x{4e00}-\x{9fff}] /u" と preg_match_all() 関数を使用できます。

preg_match_all() 関数は、正規表現に一致する文字列内のすべての結果を検索します

preg_match_all(pattern,subject,matches,flags,offset)
ログイン後にコピー

パラメータの説明は次のとおりです:

  • pattern: 検索されるパターン、これも定義された正規表現です;
  • subject: 検索される文字列;
  • matches: オプションのパラメータ (多次元)配列)、すべての一致する結果を保存するために使用され、配列は指定された $ flags によって並べ替えられます;
  • flags: オプションのパラメーターで、次のフラグと組み合わせて使用​​できます (PREG_PATTERN_ORDER および PREG_SET_ORDER は使用できないことに注意してください)同時に):
    • PREG_PATTERN_ORDER: 結果は $matches[0] で並べ替えられます 保存完了 パターンのすべての一致、$matches[1] は最初のサブグループのすべての一致を保存します。
    • #PREG_SET_ORDER: 結果は、$matches[0] には最初の一致から得られたすべての一致 (サブグループを含む) が含まれ、$matches[1] には 2 番目の一致で見つかったすべての一致 (サブグループを含む) が含まれる配列として並べ替えられます。
    • PREG_OFFSET_CAPTURE: このフラグが渡されると、それぞれが見つかります 一致が返されると、ターゲット文字列に対する相対的なオフセットが増加します これにより、$matches の各一致結果文字列要素が変更されることに注意してください, 0 番目の要素の一致結果文字列と 1 番目の要素の一致結果文字列になります。件名内の一致結果文字列のオフセット。
  • offset: オプションのパラメータ、$ offset は、ターゲット文字列内の指定された位置から検索を開始するために使用されます (単位はバイト)。
preg_match_all() 関数は、パターンの一致の数 (おそらく 0)、またはパターンの一致の場合は FALSE を返します。エラーが発生します。

preg_match_all() 関数は、正規表現 "/[\x{4e00}-\x{9fff}] /u" を使用して文字列をフィルターできます。取得のみ可能です。漢字。

注: preg_match_all() 関数は、一致する関数文字を 1 つずつ配列に格納します (配列は 3 番目のパラメーターで指定されます)。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "欢迎4546来到php这里。zblog,我的?#$%^天呀&())*(&^";
echo $str;
preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr);
var_dump($arr);
?>
ログイン後にコピー

PHPで正規表現を使用して中国語の文字のみに一致させる方法

現時点では、implode() 関数を使用して、結果の値を文字列に結合できます。

implode(&#39;&#39;,$arr[0])
ログイン後にコピー

PHPで正規表現を使用して中国語の文字のみに一致させる方法

拡張知識: implode() 関数

implode() 関数は、配列要素で構成される文字列を返します。

implode(separator,array)
ログイン後にコピー
  • 区切り文字: オプション。配列要素の間に何を配置するかを指定します。デフォルトは「」(空の文字列)です。

  • 配列: 必須。文字列に結合される配列。

戻り値: 配列要素で構成される文字列を返します。

implode() 関数と同じ機能を持つ関数、join() もあります。join() 関数は implode() 関数のエイリアスです。

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPで正規表現を使用して中国語の文字のみに一致させる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート