正则细节要点
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.正则表达式要转义的字符
. \ + * ? [ ^ ] $ ( ) { } = ! < > | : -
$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.正则表达式要转义的字符
. \ + * ? [ ^ ] $ ( ) { } = ! < > | : -
相关文章推荐
- activity布局中加载fragment
- 048.@throw 自定义异常
- 2015072701 - 出门
- 【剑指Offer面试题】 九度OJ1389:变态跳台阶
- python读取EXCLE文件数据
- 安卓坐标(getX(),getY(),getRawX(),getRawY())
- excel 如何绘制边框
- iOS UI - 用循环批量创建Label
- webrtc ConnectToPeer
- Redis介绍和安装
- 在win8上安装mySQL的过程
- git 使用笔记二
- android 屏幕适配方案
- MySQL 语句级避免重复插入—— Insert Select Not Exist
- JS几种排序算法
- 做一点事情就想放松,然后就开始拖延,怎么克服?
- 在消息对话框中显示文本之JOptionPane类
- 几个移动机器人lab资料 相关链接,实验室、原理、基础知识
- 169 Majority Element
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句