PHP中的正則表達式支持以下修飾符:
i
:不區分大小寫。例如,/foo/i
會匹配 “foo”、“FOO” 和 “Foo”。m
:多行模式。這會使 ^
和 $
匹配每一行的開始和結束,而不僅僅是整個字符串的開始和結束。例如,/^foo/m
會匹配字符串中每一行開頭的 “foo”。u
:UTF-8 模式。這允許正則表達式處理 Unicode 字符。例如,/\p{L}/u
會匹配 Unicode 字符集中的任何字母字符。s
:讓 .
匹配換行符。在默認情況下,.
不匹配換行符。使用 s
修飾符,.
會匹配包括換行符在內的任何字符。例如,/foo.bar/s
會匹配 “foo” 后跟任何字符(包括換行符),直到遇到 “bar”。x
:忽略空白和注釋。這允許你在正則表達式中添加注釋,并且 \s
和 \n
等字符會被忽略。例如,/foo\s+bar/x
會匹配 “foo” 后跟一個或多個空白字符,然后是 “bar”。e
:使用 PHP 函數解析正則表達式。這允許你在正則表達式中使用 PHP 函數,例如 preg_replace
。例如,/foo/{echo "Hello, World!";}/e
會執行 echo "Hello, World!";
并在匹配 “foo” 的位置替換它。A
:使正則表達式成為斷言。這允許你使用條件邏輯來構建更復雜的匹配規則。例如,/(?=foo)/
會匹配任何位于 “foo” 前面的位置。D
:使 ^
和 $
匹配每一行的開始和結束,而不僅僅是整個字符串的開始和結束。這與多行模式類似,但通常用于單行字符串。S
:讓 .
匹配包括換行符在內的任何字符。這與 s
修飾符類似,但通常用于單行字符串。U
:非貪婪模式。這會使正則表達式盡可能少地匹配字符。例如,/foo.*?bar/U
會匹配 “foo” 和 “bar” 之間的盡可能少的字符。L
:讓 \w
、\W
、\d
、\D
、\s
和 \S
匹配 Unicode 字符。這與 UTF-8 模式類似,但通常用于單個字符。N
:使 \w
、\W
、\d
、\D
和 \s
匹配 Unicode 字符序列,而不是單個字符。這與 Unicode 模式類似,但通常用于單個字符。X
:忽略正則表達式中的空白和注釋。這與 x
修飾符類似,但通常用于單個字符。