PHP 正規表現の i、m、s、x、e がそれぞれ何を表す詳細についての簡単な説明

黄舟
リリース: 2023-03-06 10:54:01
オリジナル
3329 人が閲覧しました

以下のエディターは、PHP 正規表現の i、m、s、x、e がそれぞれ何を表すかについての決まり文句を提供します。編集者はこれがとても良いと思ったので、参考として共有します。エディターで見てみましょう

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

m
この修飾子が設定されている場合、「行頭」と「行末」は文字列全体の先頭と末尾に一致するだけでなく、改行文字の前後にも一致します。

s
この修飾子が設定されている場合、パターン内のドット メタ文字 (.) は改行を含むすべての文字と一致します。この設定を行わないと、改行文字は含まれません。

x #およびエスケープされていない文字クラス外の次の文字 改行文字間のすべての文字、両端も含めて無視されます。

eこの修飾子を設定すると、 preg_replace() は、

? の後の置換文字列内の後方参照の通常の置換を実行します。非貪欲マッチング: *、+ 修飾子と ? は両方とも貪欲です。可能な限り多くのリテラルと一致するようにするには、後ろに ? を追加する必要があります。 例:

<?php
$string = "上飞机离开我<img border=&#39;0&#39; alt=&#39;&#39; src=&#39;/uploadfile/2009/0921/20090921091612567.jpg&#39; border=&#39;0&#39; />sdfsdf";

$su = preg_match("/ \<[ ]*img.*src[ ]*\=[ ]*[\"|\&#39;](.+?)[\"|\&#39;] /", $string,$match); // 匹配src=的内容
print_r($match[1]); // 输出 /uploadfile/2009/0921/20090921091612567.jpg

$su = preg_match("/ \<[ ]*img.*src[ ]*\=[ ]*[\"|\&#39;](.+)[\"|\&#39;] /", $string,$match);
print_r($match[1]); // 输出 /uploadfile/2009/0921/20090921091612567.jpg&#39; border=&#39;
?>
ログイン後にコピー

例: (?i):

(?i) PHP では内部修飾子を意味し、i は大文字と小文字を区別しないことを意味します

その他の修飾子には、x、m、 s、Uなどこれは私たちが使用したのと同じパターン修飾子です。

違いは、パターンの内部で使用されることです。 (?i) が配置されているサブパターン (

ccc(a(?i))bcd 匹配 cccabcd和cccAbcd
ログイン後にコピー

など) にのみ作用し、(?i) はパターン全体に作用するため、a(?i)bc は abc プラス i 修飾子と同じです

後方参照

正規表現パターンまたはパターンの一部を括弧で囲むと、キャプチャされた各部分一致が、正規表現パターンの左から右に次のように格納されます。保存されています。部分一致が格納されるバッファには、1 から始まり、最大 99 個の部分式まで連続した番号が付けられます。各バッファーには、「n」を使用してアクセスできます。n は、特定のバッファーを識別する 1 桁または 2 桁の 10 進数です。

非キャプチャメタ文字「?:」、「?=」、または「?!」を使用して、関連する一致の保存を無視できます。

上記は、PHP 正規表現の i、m、s、x、および e が何を表すかについて簡単に説明したものです。詳細については、PHP 中国語 Web サイト (www.php.cn) を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート