正则模式修饰符
在结束分隔符之后可以跟随多种模式修饰符 (用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('{<title>(.*?)</title>}si',$html,captures))
摘自lostwolf's Blog
图片内容
最近更新
随机推荐
- 揭开玩转粉丝经济的秘诀
- ImageMagick ReadDCMImage远程拒绝服
- OS X病毒iWorm蠕虫肆虐 已感染1.7万台
- 8月第1周国内搜索类网站/频道Top15:
- 黑客新招方式隐蔽难检测 用CPU漏洞控
- 有哪些在发达国家很普遍 在中国却行不
- 权威机构公布新DNS漏洞和补丁
- 中国网上书店隐患大 不提供隐私公告
- MS09-067:Microsoft Office Excel 中
- 新浪微博造闭环,阿里支付结地网
- 黑客团队称3G版iPhone已被破解 解锁软
- 由淘宝“刷钻”说起:网推从业者的伦
- 你做好成为有钱人的准备了么?人人贷
- 智联招聘上市 迎来新生or走到顶点
- Oracle DBMS_METADATA软件包存在多个
- CNNIC采取多项措施做好疫情期间网络基
- Mac OS X系统爆漏洞 可致密码泄露
- 9月第3周安全回顾:QuickTime现新零日
- 互联网金融样本:融360的贷款玩法
- Apache mod_proxy_ftp模块远程命令注