在结束分隔符之后可以跟随多种模式修饰符 (用php 的术语来说,叫做 pattern modifier),
在某些情况下,修饰符也可以出现在正则表达式内部,修饰模式的某些性质。我们已经在一些例子中看到过表达不区分大小写的模式修饰符 i 。下面简要介绍模式修饰符:
修饰符 |
表达式中的写法 |
说明 |
i |
(?i) |
Ø 忽略大小写 |
m |
(?m) |
Ø 增强行锚点模式 |
s |
(?s) |
Ø 点号通配模式 |
x |
(?x) |
Ø 宽松排列和注释模式 |
u |
|
Ø 以UTF-8读取正则表达式和目标字符串 |
X |
(?X) |
Ø 启用PCRE “额外功能(extra stuff)” |
e |
|
Ø 将replacement作为PHP代码(只用于preg_replace) |
S |
|
Ø 启用PCRE的“study”优化尝试 |
下面三个很少用到 |
||
U |
(?U) |
Ø 交换 "*"和"*?"的匹配优先含义 |
A |
|
Ø 将整个匹配尝试锚定在起始位置 |
D |
|
Ø "$1" 只能匹配EOS,而不是EOS之前的换行符 (如果使用了模式修饰符m则不会这样) |
表达式内部的模式修饰符
在正则表达式内部,模式修饰符可以单独出现,来启用或停用某些特性(例如用"(?i)"来启用不区分大小写匹配,用"(?-i)"来停用。此时,它们的作用范围持续到对应的结束括号,如果不存在,就持续到正则表达式的末尾。
它们也可以用作模式修饰范围 例如 "(?i...)" 表示对此括号内的内容进行不区分大小写匹配"(?-sm:...)" 表示在此范围内停用s和m模式.
正则表达式之外,结束分隔符之后的模式修饰符可以以任何顺序组织,下例中的‘si’表示同时启用不区分大小写和点号通配模式:
If(preg_match('{
摘自lostwolf's Blog

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

WebStorm Mac版
好用的JavaScript開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。