i (PCRE_CASELESS)
この修飾子 が設定されている場合、 パターン内の文字は大文字と小文字を区別せずに照合されます 。
m (PCRE_MULTILINE) デフォルトでは、PCREは、ターゲット文字列が単一行の文字で構成されていると考えます(、実際には複数の行が含まれている可能性があります)、
「行頭」メタ文字(^)は文字列、の先頭にのみ一致しますが、「行末」メタ文字($ ) 文字列の末尾 、、または最後の改行文字 のみに一致します ( D 修飾子 が設定されている場合を除く)。この動作は と同じです。 perl 同じ この修飾子が設定されている場合、
「行頭」と「行末」は、ターゲット文字列の改行文字の前後に一致します、 さらに、、 が存在しない場合、これは /m 修飾子 に相当します。 "ターゲット文字列内の n "文字 、、またはパターンに現れない^ または $、 この修飾子を設定しても効果はありません. s ( PCRE_DOTALL) この修飾子 が設定されている場合、 パターン内のドット メタ文字は、改行 を含むすべての文字 と一致します。このドットは、改行文字 と同等ではありません。 /s perl の修飾子 .。この修飾子 .x の設定に関係なく、常に改行 、 と一致します。 (PCRE_EXTENDED) ) この修飾子が設定されている場合 、 パターン内または文字クラス内にないエスケープされていない空白データ文字は常に無視されます 、および # 文字クラス外の文字、および次の改行文字間の文字も無視されます 。 修飾子 は、perl の /x 修飾子 と同等であり、コンパイルされたパターンにコメントを含めることができます。 。注: これは、、などのパターンの特殊文字シーケンスにのみ使用できます。シーケンス(?( 条件付きサブグループを導入します(翻訳注: この構文で定義された 特殊文字シーケンスは、シーケンス内に空白文字が出現するとコンパイル エラーを引き起こします例えば(
?(はエラーを引き起こします。). e (PREG_REPLACE_EVAL) この修飾子が設定されている場合、preg_replace()は文字列の置換を実行します バックリファレンス交換その後、 stringは、phpコード評価の実行として置き換えられます(eval関数法)、実行結果は、交換に関与する実際の文字列として使用します一重引用符、二重引用符、バックスラッシュ()およびNULL文字 のバックリファレンス置換が使用されます バックスラッシュエスケープ. ヒント 置換パラメータは、正当な コード文字列、それ以外のphpで構成されています が解釈を生成しますpreg_replace()が呼び出される行のエラー. 注: preg_replace() のみがこの修飾子を使用します 、 他の PCRE 関数は無視しますこの修飾子 . (PCRE_ANCHORED)この修飾子 モードは強制的に"anchored"モードになります、それは制約を言いますmatch では、 ターゲット文字列の先頭からのみ を検索します。この効果は、、、 の適切なパターンを使用して構築することもできます。これは perl の場合にも当てはまります。 このモードを達成する唯一の方法.D (PCRE_DOLLAR_ENDONLY) この修飾子が設定されている場合 、パターン内のメタキャラクターのドル記号はターゲット文字列 の末尾にのみ一致します。 この修飾子 が設定されていない場合 、文字列が終了するとき 改行文字 を使用すると、 ドル記号もその改行文字 に一致します ( ですが、先行する改行文字 には一致しません) 修飾子 m が に設定されている場合、。この修飾子は無視されますperlには、この修飾子と同等の修飾子はありません。S パターンを使用する必要がある複数回、マッチング速度を向上させるために、 は追加の分析を行うの価値がありますこの修飾子が設定されている場合 、。 この追加の分析が実行されます 現在、このパターンの分析は、アンカーされていないパターンの一致にのみ適用されます(つまり、個別の固定開始文字はありません)。 U (PCRE_UNGREEDY) この修飾子は、量指定子の「greedy」モードを反転し、量指定子のデフォルトをnon-greedyにし、量指定子の後にを渡します。 ? 貪欲にする方法これはperlと互換性がありませんインモード修飾子(?U)を使用して設定することもできます。 設定、するか、量指定子の後に疑問符を付けて非貪欲としてマークします(例:.*?)。注 : 非貪欲モード は通常 pcre.backtrack_limit. PCRE_EXTRA を超える文字と一致することはできません。 この修飾子は、PCREおよびperlと互換性のない添付ファイル機能を有効にします。パターン内のバックスラッシュの後には、ingenが続きます。 は特別な意味はありません文字はエラーを引き起こします 、 これらの文字は、default の場合、perl、を確保するために予約されています。 バックスラッシュの後に特別な意味を持たない文字は、その文字の元のテキストとみなされます 現在、この修飾子によって制御される他の機能はありません。 内部オプション設定(?J)ローカルPCRE_DUPNAMESオプション を変更しますサブグループ名の変更を許可します。
(注釈:は内部オプション を通してのみ設定できます、外部/J設定はエラーを生成します。)u (PCRE8 ) この修飾子は、perlと互換性のない追加機能を開きます。では、utf-8と見なされます。 php
4.1.0以降、win32バージョンphp 4.2.3は現在利用可能です。
PHP 4.3.5は、utf-8モードの有効性チェックを開始します この修飾子は追加の機能を有効にします。
Perl と互換性のない PCRE の機能は、UTF-8 として扱われます。この修飾子は、Unix では PHP 4.1.0 以降、Win32 では PHP 4.2.3 から利用可能です。パターンの有効性がチェックされるためです。 PHP 4.3.5.
以上がPHP 正規表現 /i、/s、/x、/u、/U、/A、/D、/S などの紹介。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。