PHP PCRE定期分析

little bottle
little bottle転載
2019-04-25 17:41:383008ブラウズ

この記事の主な内容は、一定の参考価値のある 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 サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。