ホームページ >バックエンド開発 >PHPチュートリアル >中国語を照合するための通常のルールの紹介 (GB2312/utf-8)

中国語を照合するための通常のルールの紹介 (GB2312/utf-8)

WBOY
WBOYオリジナル
2016-07-25 08:59:121381ブラウズ
この記事では、中国語 (GB2312 および utf-8 形式) を照合するために使用される通常のルールを紹介します。必要な友人は参照してください。

以下は、PCRE で現在使用されている可能な修飾子のリストです。 括弧内はこれらの修飾子の内部 PCRE 名です。修飾子のスペースと改行は無視され、他の文字はエラーの原因となります。

この記事が、正規表現に関連する概念を誰もがより深く理解し、習得するのに役立つことを願っています。

i (PCRE_CASELESS) この修飾子が設定されている場合、パターン内の文字は大文字と小文字の両方に一致します。

m(PCRE_MULTILINE) デフォルトでは、PCRE はターゲット文字列を (改行が含まれている場合でも) 単一の「行」の文字で構成されているものとして扱います。 「行頭」メタキャラクタ (^) は文字列の先頭にのみ一致し、「行末」メタキャラクタ ($) は文字列の末尾、または改行の場合はその前の最後の文字にのみ一致します (改行でない場合)。 D が設定されています) 修飾子)。これはPerlと同じです。

この修飾子が設定されている場合、「行の開始」と「行の終了」は文字列全体の先頭と末尾に一致するだけでなく、それぞれ文字列内の改行文字の前後にも一致します。これは Perl の /m 修飾子に相当します。ターゲット文字列に「n」文字がない場合、またはパターンに ^ または $ がない場合、この修飾子を設定しても効果はありません。

s(PCRE_DOTALL) この修飾子が設定されている場合、パターン内のドット メタ文字 (.) は改行を含むすべての文字と一致します。この設定を行わないと、改行文字は含まれません。これは Perl の /s 修飾子に相当します。 [^a] などの除外文字クラスは、この修飾子が設定されているかどうかに関係なく、常に改行と一致します。

x(PCRE_EXTENDED) この修飾子が設定されている場合、パターン内の空白文字は、エスケープされている文字または文字クラス内の文字を除いて完全に無視され、エスケープされていない文字クラス外の # と次の改行文字 の間のすべての文字 (両端を含む) も無視されます。これは Perl の /x 修飾子に相当し、複雑なパターンにコメントを追加できます。ただし、これはデータ文字にのみ適用されることに注意してください。空白文字は、条件付きサブパターン (中央に?() を導入するシーケンスなど、パターン内の特殊文字シーケンスには決して出現できません。

私 この修飾子が設定されている場合、preg_replace() は置換文字列内の後方参照の通常の置換を実行し、それを PHP コードとして評価し、検索された文字列をその結果で置き換えます。

preg_replace() のみがこの修飾子を使用し、他の PCRE 関数はそれを無視します。

注: この修飾子は PHP3 では使用できません。

A (PCRE_ANCHORED) この修飾子が設定されている場合、パターンは強制的に「アンカー」されます。これは、ターゲット文字列の先頭からのみ一致するように強制されることを意味します。この効果は、適切なモード自体を介して実現することもできます (Perl でこれを実現する唯一の方法です)。

D(PCRE_DOLLAR_ENDONLY) この修飾子が設定されている場合、パターン内のドルのメタ文字はターゲット文字列の末尾のみと一致します。このオプションを使用しない場合、最後の文字が改行文字の場合、ドル記号はこの文字の前でも一致します (ただし、他の改行文字の前では一致しません)。 m 修飾子が設定されている場合、このオプションは無視されます。 Perl には同等の修飾子はありません。

S パターンが複数回使用される場合は、マッチングを高速化するために最初にパターンを分析する価値があります。この修飾子が設定されている場合、追加の分析が実行されます。現在、パターンの分析は、単一の固定開始文字を持たない非アンカー パターンにのみ役立ちます。

U(PCRE_UNGREEDY) この修飾子は一致カウントの値を反転してデフォルトでは繰り返されないようにしますが、後に「?」を付けると繰り返されるようになります。これは Perl と互換性がありません。このオプションは、パターン内で (?U) 修飾子を設定するか、量指定子の後に疑問符 (例: .*?) を付けることによっても有効にすることができます。

X(PCRE_EXTRA) この修飾子は、Perl と互換性のない PCRE の追加機能を有効にします。パターン内のバックスラッシュの後に特別な意味のない文字が続くとエラーが発生するため、この組み合わせは将来の拡張のために保存されます。デフォルトでは、Perl と同様に、バックスラッシュの後に特別な意味を持たない文字が続くと、その文字自体として扱われます。現在、この修飾子によって制御される他の特性はありません。

u(PCRE_UTF8) この修飾子は、Perl と互換性のない PCRE の追加機能を有効にします。パターン文字列は UTF-8 として扱われます。この修飾子は、Unix では PHP 4.1.0 以降、win32 では PHP 4.2.3 以降で使用できます。 PHP 4.3.5 以降、パターンの UTF-8 の有効性がチェックされます。 PHP での中国語コンテンツに一致する正規表現についての知識として役立つことを願っています。 Programmer's Home の皆様の学習と進歩がますますご発展されることをお祈りしております。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。