ホームページ >バックエンド開発 >PHPチュートリアル >PHP正規表現の修飾子とは何ですか?

PHP正規表現の修飾子とは何ですか?

零下一度
零下一度オリジナル
2017-07-25 11:39:191860ブラウズ

PHP の正規表現修飾子を学ぶ前に、まずメタキャラクターで説明したように、「?」も重要な役割を果たします。つまり、「貪欲モード」とは何ですか?

PHP 正規表現貪欲モード:

たとえば、文字「a」で始まり文字「b」で終わる文字列を一致させたいのですが、一致する必要がある文字列には多くの「b」が含まれています「a bbbbbbbbbbbbbbbb」など、「a」の後の「s」の場合、正規表現は最初の「b」または最後の「b」と一致しますか?貪欲モードを使用する場合は、最後の「b」が照合されます。それ以外の場合は、最初の「b」のみが照合されます。

PHP正規表現貪欲モードの使用例:

/a.+?b/
/a.+b/U

貪欲モードを使用しない場合の例の比較は次のとおりです:

/a.+ b/

上では修飾子 U が使用されています。詳細については、修飾子の概要を参照してください。

PHP 正規表現 /i、/is、/s、/isU などとは何ですか?

i は大文字と小文字を区別しません

s パターン内のドット メタ文字 (.) は、改行を含むすべての文字と一致します

x パターン内の空白文字は、エスケープされているか文字クラス内にある場合を除き、完全に無視されます 無視され、間のすべての文字# エスケープされていない文字クラスの外側と次の改行も無視されます

A (PCRE_ANCHORED) この修飾子が設定されている場合、モードは強制的に「アンカー」になります。つまり、ターゲットの先頭からのみ一致することを強制します。つまり、パターンの先頭に ^ が自動的に追加されます。

D (PCRE_DOLLAR_ENDONLY) この修飾子が設定されている場合、パターン内のドルのメタ文字はターゲット文字列の末尾にのみ一致します。このオプションを使用しない場合、最後の文字が改行文字の場合、ドル記号はその文字の前でも一致します (ただし、他の改行文字の前では一致しません)。 m 修飾子が設定されている場合、このオプションは無視されます。 Perl には同等の修飾子はありません。 S パターンが複数回使用される場合は、マッチングを高速化するために最初にパターンを分析する価値があります。この修飾子が設定されている場合、追加の分析が実行されます。現在、パターンの分析は、単一の固定開始文字を持たない非アンカー パターンにのみ役立ちます。

U (PCRE_UNGREEDY) この修飾子は、デフォルトでは繰り返されないように一致数の値を反転しますが、後に「?」を付けると繰り返されるようになります。これは Perl と互換性がありません。このオプションは、モードで (?U) 修飾子を設定することによっても有効にすることができます。

X (PCRE_EXTRA) この修飾子は、Perl と互換性のない PCRE の追加機能を有効にします。パターン内のバックスラッシュの後に特別な意味のない文字が続くとエラーが発生するため、この組み合わせは将来の拡張のために保存されます。デフォルトでは、Perl と同様に、バックスラッシュの後に特別な意味を持たない文字が続くと、その文字自体として扱われます。現在、この修飾子によって制御される他の特性はありません。つまり、貪欲モード、次のような最大一致です。 /a[w]+?e/U は、abce ではなく abceadeddd の abceade に一致します。U 修正が追加されていない場合は、abce u (PCRE_UTF8) に一致します。この修飾子は、PCRE Extra 機能を有効にします。それは Perl と互換性がありません。パターン文字列は UTF-8 として扱われます。この修飾子は、Unix では PHP 4.1.0 以降、win32 では PHP 4.2.3 以降で使用できます。

PHP 正規表現修飾子の理解:

PHP 正規表現の修飾子は、正規表現の多くの特性を変更し、正規表現をニーズにより適したものにすることができます (注: 修飾子は大文字と小文字が区別されます。つまり、「e」は等しくありません) 「E」まで)。

PHP 正規表現修飾子の種類と紹介:

◆i: 「i」を修飾子に追加すると、正規表現では大文字と小文字の区別がキャンセルされます。つまり、「a」と「A」は同じです。

◆m: デフォルトの通常の開始 "^" と終了 "$" は通常の文字列のみに使用されます。修飾子に "m" を追加すると、開始と終了は文字列の各行、つまり先頭を参照します。各行は「^」で終わり「$」で終わります。

◆s: 修飾子に「s」を追加すると、改行文字以外の文字を表すデフォルトの「.」が改行文字を含む任意の文字になります。

◆x: この修飾子を追加すると、エスケープされていない限り、式内の空白文字は無視されます。

◆e: この修飾子は置換の場合にのみ役立ちます。つまり、置換の PHP コードとして使用されます。

◆A: この修飾子を使用する場合、式は一致する文字列の先頭である必要があります。たとえば、「/a/A」は「abcd」と一致します。

◆E: "m" とは異なり、この修飾子が使用される場合、"$" は改行文字の前ではなく、文字列の絶対的な末尾と一致します。このモードはデフォルトでオンになっています。

◆U: クエスチョンマークと同じ機能があり、「貪欲モード」を設定するために使用されます。

ここでは、PHP 正規表現修飾子に関する関連コンテンツを紹介します。PHP 正規表現修飾子を理解して習得するのに役立つことを願っています。

以上がPHP正規表現の修飾子とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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