ホームページ  >  記事  >  バックエンド開発  >  PHP正則パターンmodifierの具体的な適用方法の分析_PHPチュートリアル

PHP正則パターンmodifierの具体的な適用方法の分析_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:30:12971ブラウズ

初心者向けパターン修飾子:

パターン修飾子はパターン全体の外側にマークされます

i: パターン内の文字は大文字と小文字の両方に一致します。

m: 文字列は複数の行として扱われます。

s: 文字列を単一行として扱い、改行は通常の文字として処理します。

A: ターゲット文字列の先頭からのみ強制的に一致させます。 in はターゲット文字列の末尾のみに一致します

U : 最も近い文字列に一致します

現在 PCRE で使用できる PHP の正規パターン修飾子を以下に示します。括弧内はこれらの修飾子の内部 PCRE 名です。修飾子のスペースと改行は無視され、他の文字はエラーの原因となります。

i (PCRE_CASELESS)

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

m (PCRE_MULTILINE)

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

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

s (PCRE_DOTALL)

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

x (PCRE_EXTENDED)

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

この修正記号 preg_replace () を逆参照用の置換文字列に設定します。通常の置換として逆参照し、PHP コードとして評価し、検索された文字列をその結果で置き換えます

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

注: この PHP の通常のパターン修飾子ではありません。 PHP3 で利用可能です。

A (PCRE_ANCHORED)

この修飾子が設定されている場合、パターンは強制的に「アンカー」されます。つまり、ターゲット文字列の先頭からのみ一致するように強制されます。パターン自体を適切に渡します (Perl でこれを行う唯一の方法)。

D (PCRE_DOLLAR_ENDONLY)

この PHP の通常のパターン修飾子が設定されている場合、これがなければ、パターン内のドルのメタ文字はターゲット文字列の末尾にのみ一致します。オプション。最後の文字が改行の場合、ドル記号はこの文字の前にも一致します (ただし、他の改行の前には一致しません)。

修飾子が設定されている場合。この修飾子が設定されている場合、固定された開始文字を持つ 1 つのパターンのみを分析するのに役立ちます。

この PHP の通常のパターン修飾子は、デフォルトでは繰り返されないように一致番号の値を反転しますが、その後に「?」が続きます。これは Perl と互換性がありません。 ) パターン内の修飾子、または疑問符 (例: *?)

X (PCRE_EXTRA)

この修飾子は、パターン内のバックスラッシュの後に文字が続くものを有効にします。特別な意味を持たない場合はエラーが発生するため、この組み合わせは Perl と同様に、特別な意味を持たない文字が後に続くものとして扱われます。

u は現在、他の機能を制御しません。 (PCRE_UTF8)

この修飾子は、Perl と互換性のない追加機能を有効にします。この修飾子は、Unix では PHP 4.1.0 以降、Win32 では PHP 4.3.5 以降で使用できます。合法性

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446315.html技術記事初心者向け: パターン修飾子はパターン全体の外側にマークされます。 i: パターン内の文字は大文字と小文字の両方に一致します。 s: 文字列は単一の行として扱われます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。