ホームページ > バックエンド開発 > PHPチュートリアル > PHP 正規表現の修飾子 /i、/is、/s、/isU についての簡単な説明、正規表現 isu_PHP チュートリアル

PHP 正規表現の修飾子 /i、/is、/s、/isU についての簡単な説明、正規表現 isu_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:16:28
オリジナル
1011 人が閲覧しました

PHP 正規表現の修飾子 /i、/is、/s、/isU および正規表現 isu についての簡単な説明

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

PHP 正規表現貪欲モード:

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

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

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

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

/a.+b/

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

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

大文字と小文字は区別されません

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 の正規表現のグローバル修飾子と g がどのような役割を果たしているかを説明できる人はいますか? 小さな例で証明するのが最善です

交換の際、gがない場合は最初に一致するアイテムのみが置き換えられ、gがある場合は一致するすべてのアイテムが置き換えられます。

php正規表現

一重引用符と / は、通常のテンプレートの包含文字として使用できます。これは、たとえば、コンテンツを一重引用符と一致させるために使用することもできます。テンプレートを含めるには一重引用符を使用し、/ または # を使用するとテンプレートを簡素化できます。それ以外の場合は、テンプレート内の一重引用符の前にエスケープ文字を追加する必要があります

最後の i は大文字と小文字を区別しないことを意味します。大文字と小文字を区別するため、 s は全文一致として理解できます。つまり、一致したコンテンツに改行がある場合は、このスイッチを追加するのが最善です

テンプレートでは、 \s はスペースを意味します

私は正規表現の専門家です。これを教えるための特別な本があります。QQ1389951 に聞いてください。笑。

http://www.bkjia.com/PHPjc/897697.html

tru​​ehttp://www.bkjia.com/PHPjc/897697.html技術記事 PHP 正規表現の修飾子 /i、/is、/s、/isU と正規表現 isu について簡単に説明します。PHP 正規表現修飾子を学ぶ前に、最初にメタキャラクターで説明した貪欲モードについて理解しましょう。 「それと…
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート