您的位置:首页 > 其它

正则细节要点

2015-07-27 23:10 337 查看
1. 作为子模式使用

$reg = "/3+(abc)(t)/";

$string = "333abct";

if(preg_match($reg,$string,$arr))

结果是

Array ( [0] => 333abct [1] => abc [2] => t )

2. 反向引用

取出子模式 再作为正则表达式的一部分 如果是preg_replace 可以将子模式取出 在被替换的字符串使用

\1 取第一个子模式 。。。。\2\3\4\5( 如果不是在正则表达式里用 就用 $1 $2 来捕获)

注意 如果是双引号 那必须是\\ 单引号 就是 \

3. 取消子模式

如果只是想用个括号 并不是子模式 可以这么用 (?:) 在括号最前面使用?: 就可以取消这个子模式

4.【修饰符】

在定界符后面写模式修正符号

可以一次使用一个也可以使用多个

对正则表达式调优用的 也可以说是对正则表达式的扩展

i 不区分大小写

m 匹配多行 ^..$ 多行后任何一行都可以用正则表达式规则套下

s 设置这个.匹配换行

x 表示正则表达式中的空白忽略不计 不是字符串里面的

e 执行php代码

A === ^

Z === $

U 正则表达式本身就比较贪婪 如果不开启U 正则表达式就会匹配到最后一个

禁止贪婪还可以加个? 一样可以禁止贪婪 .*? 如果两个同时出现 那么就会再次开启贪婪模式

5.正则表达式要转义的字符

. \ + * ? [ ^ ] $ ( ) { } = ! < > | : -
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: