パターン修飾子 - 正規表現の修飾子
現在の正規表現で利用可能な変更は次のとおりです。括弧内の名前は、それらの修飾子の内部 PCRE 名です。
i (PCRE_CASELESS) この修飾子が設定されている場合、式では大文字と小文字が区別されません。
m (PCRE_MULTILINE)
デフォルトでは、PCRE はターゲット文字列値を (複数の行が含まれている場合でも) 単一行の文字列とみなします。行の開始マーク (^) は文字列の先頭と行のみに一致します。終了マーク ($) のみが一致します。 文字列の末尾、または終了行と一致します (E 修飾子が指定されていない場合)。これは Perl と同じです。
この修飾子が設定されている場合、行の開始と行の終了構造は、すべての開始と終了と同様に、ターゲット文字列内の新しい行の現在位置の前後でそれぞれ一致します。これは、 Perl の /m 修飾子と同等です。ターゲット文字列に「n」文字がないか、パターンに ^ または $ が含まれていない場合、この修飾子は効果がありません。
s (PCRE_DOTALL)
この修飾子が設定されている場合、パターン内の「ドット」は改行を含むすべての文字に一致します。この修飾子が設定されていない場合、この修飾子は Perl の /s 修飾子と同等です。 [^a] などの型は、この修飾子の制限に関係なく、常に改行文字と一致します。
x (PCRE_EXTENDED)
この修飾子が設定されている場合、エスケープ文字または文字の内部タイプが使用されていない限り、パターン内のすべての空白文字が無視され、文字タイプの外側にあるエスケープされていない # 記号もすべて無視されます。これは、複雑なパターンにコメントを追加できる Perl の /x 修飾子に相当します。これは、データ文字にのみ適用され、パターン文字の指定された順序では表示されないことに注意してください。
e
この修飾子が設定されている場合、preg_replace() は、PHP コードと同様に、置換値に関連する通常の置換を実行し、それを使用して検索文字列を置換します。
この修飾子は preg_replace() 内でのみ使用します。他の PCRE 関数は無視します。
A (PCRE_ANCHORED)
この修飾子が設定されている場合、パターンは強制的にアンカーされます。つまり、値が検索文字列の先頭に一致します。この効果は、適切なパターン構造自体によって実現できます。 Perl での唯一の方法
D (PCRE_DOLLAR_ENDONLY)
この修飾子が設定されている場合、パターン内の $ 修飾子はターゲット文字列の末尾にのみ一致します。この修飾子がないと、$ 文字は新しい行の末尾にも一致します (ただし、先頭には一致しません)。 m 修飾子が設定されている場合、この修飾子は無視されます。
S パターンが複数回使用される場合は、マッチングの速度を上げるために長時間分析します。この修飾子を使用すると、現在、リサーチ パターンはアンカー パターン以外にのみ使用されます。固定スタート文字はありません
U (PCRE_UNGREEDY) この修飾子は、デフォルトでは貪欲ではないように「貪欲」の量を反転しますが、後ろに疑問符 (?) を付けると貪欲になる可能性があります。これは Perl と互換性がありません。パターン (?U) 修飾子で渡されます
はい、Perl では、バックスラッシュの後の無意味な文字は通常のリテラルとして扱われます。現在、他の制御機能はありません
。