概念
- 正则(regex):
- 字符组(Character Class):
[abc.?] .?等需要转义的字符可以以字符组方式匹配
- 字符组都是匹配一个字符
g[.?] 并不会匹配 g.?
- 字符组元字符(Character-class Metacharacter):
[^0-5a-z] 匹配大小写[Ss]qr
- 匹配HTML TAG
<H[1-5]>
- ^不包含
[a|b] 和(a|b)不同,前者|只是一个字符,后者则是”或”
- 单词分界(Word Boundaries)元字符序列(Metasequences):
<word word&;
- 匹配单词word开头的和word结尾的
- b单词分界 bcatb
- 括号及反向引用(Parentheses and Backreferences):
- (abc)1 1开始引用 多个括号从左至右
- php 使用引用需要转义,即
preg_match('/(cat)1/',$str,$res)
- 环视(lookaround):
环视和b ^ $等一样只是匹配特定的位置。
- 肯定顺序环视(lookahead):
- 肯定逆序环视:
(?<=h2ero)lover you 从右至左
分隔123456789为123.456.789,可以是preg_replace('/(?<=d)(?=(ddd)+$)/','.','123456789'); 也可以是preg_replace('/(?=d)(?<=(ddd)+$)/','123456789'); 两个环视的先后顺序不重要。只要在相同位置匹配即可。
- 否定顺序环视:
- 否定逆序环视:
拾遗
^cat$ 以字符阅读 第一个c开头 第二个a 第三个t结尾 而不是单词cat
^$ 匹配空行
"[^"]*" 匹配[] 内的字符串
PHP中的正则
- 单引号转移表示一个所以才表示一个
- 模式修饰符
- i 忽略大小写
- m 增强的行锚模式
- s 点号通配模式
- x 宽松排列和注释模式
- u 以UTF-8读取正则表达式和目标字符
- X 启用PCRE额外功能
- e 将replacement作为PHP代码
$metric=preg_replace(‘/(-?d+(?:.d+)?)/e’,’floor(($1-32)*5/9+0.5)’,$subject);
- S 启用PCRE的study优化尝试
- U 交换和?的匹配优先含义
- A 将整个匹配尝试锚定在起始位置
- D $只能匹配锚定在起始位置
- preg_match中的RPEG_OFFSET_CAPTURE由于获取每次匹配的偏移量。preg_match_all中的PREG_SET_ORDER每次匹配集中保存。如果要设置多个参数用|连接。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|