PHP PCRE定期分析

little bottle
リリース: 2023-04-06 11:30:02
転載
2979 人が閲覧しました

この記事の主な内容は、一定の参考価値のある PHP の PCRE 定期解析に関するものですので、興味のある方はぜひ知っていただき、お役に立てれば幸いです。

1. はじめに

前回のブログでは、文字セットの分析がありました。これは文字セットに関するものではなく、PHP の多くの関数はデフォルトで UTF-8 エンコード形式を Unicode で処理します。それでは早速、本題に入りましょう。

#2. PHP 関数 mb_split 分析

1 <?php
2 $preg_strings = &#39;测、试、一、下&#39;;
3 $preg_str = mb_split(&#39;、&#39;, $preg_strings);
4 print_r($preg_str);
ログイン後にコピー

結果の出力:

Array(
    [0] => 测
    [1] => 试
    [2] => 一
    [3] => 下)
ログイン後にコピー

この関数のデフォルトは、UTF-8 エンコード形式で解析される基礎となる解析です。文字 $preg_strings は、区切り文字 (,) を使用して UNICODE の 16 進コード ポイントで区切られます。

3. PHP 関数 preg_split 分析

文字列 "Test it" を分割します

1 <?php
2 $strings = &#39;测试一下&#39;;
3 $mb_arr = preg_split(&#39;//u&#39;, $strings, -1, PREG_SPLIT_NO_EMPTY);
4 print_r($mb_arr);
ログイン後にコピー

出力結果は次のとおりです:

Array(
    [0] => 测
    [1] => 试
    [2] => 一
    [3] => 下
)
ログイン後にコピー

4. /u 解析中PCRE

PHP では、通常の区切り文字は #、%、/ などです。

#正規表現の背後に修飾子が含まれる場合があります。では、それらは何を意味するのでしょうか?

例:

%[\x{4e00}-\x{9fa5}]+%u
ログイン後にコピー

次の修飾子uコード テーブルを使用します。 utf-8 の エンコード形式に一致する通常のマッチング。

例 1:

1 <?php
2 $strings = &#39;测试一下&#39;;
3 $is_true = preg_match_all(&#39;%[\x{4e00}-\x{9fa5}]+%u&#39;, $strings, $match);
4 var_dump($is_true);
ログイン後にコピー

印刷結果は次のとおりです:

Array(
    [0] => Array
        (
            [0] => 测试一下
        )
)
ログイン後にコピー

# # ここ [\x{4e00}-\x{9fa5}]これはどういう意味ですか?

PHP の通常のコードでは、16 進数を表すために

\x が使用されます。

中国語の

UNICODE コード ポイント は 4E00 ~ 9FFF です (ここでは 16 進数について説明します)

##つまり、通常のマッチング方法は間隔

[], [\x{4E00}-\x{9FFF}]
##これら 2 つの通常のルールです。効果は次のとおりです。同じ。

関連チュートリアル: PHP ビデオ チュートリアル

以上がPHP PCRE定期分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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