php—PCRE 正規表現 Unicode 文字属性

伊谢尔伦
リリース: 2016-11-21 17:25:25
オリジナル
1316 人が閲覧しました

PHP 4.4.0 および 5.1.0 以降、UTF-8 モードが選択されている場合、一般的な文字タイプと一致させるために 3 つの追加のエスケープ シーケンスが使用されます。

p{xx}

属性xxを持つ文字

P{xx}

属性xxのない文字

X

拡張Unicode文字

上記のxxで表される属性名は、次のように使用されます。 Unicode の一般クラス属性を制限します。 各文字には、2 つの省略文字で指定される、そのような定義プロパティが 1 つあります。 Perl との互換性を保つために、左中括弧 { の後に ^ を追加して否定を示すことができます。たとえば、p{^Lu} は P{Lu} と同等です。

p または P で文字を 1 つだけ指定した場合、この文字で始まるすべてのプロパティが含まれます。 この場合、中括弧のエスケープ シーケンスはオプションです。

p{L}
pL

大文字と小文字を区別しない一致を指定しても、これらのエスケープ シーケンスには影響しません。たとえば、p{Lu} は常に大文字と一致します。

Unicode 文字セットは特定のリテラルで定義されます。これらの文字セットの文字と一致するには、リテラル名を使用します。例:

p{Greek}

P{Han}

決定されたテキストにない場合は、Common に集中されます。

X エスケープは、任意の数の Unicode 文字に一致します。 X は (?>PMpM*) と同等です

つまり、「mark」属性のない文字に一致し、その後に「mark」属性を持つ任意の数の文字が続きます。 そして、このシーケンスを原子のグループとみなします (詳細については以下を参照)。 通常、「mark」属性を持つ文字は、前の文字に影響を与えるアクセントになります。

PCRE は 15000 文字を超えるデータ構造を検索する必要があるため、Unicode 属性を使用して文字を照合するのは高速ではありません。 これが、PCRE で Unicode 属性の代わりに従来のエスケープ シーケンス d、w が使用される理由です。


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