正则表达式入门教程(四)
来源:互联网 发布:ehviewer网络错误2016 编辑:程序博客网 时间:2024/05/17 04:09
一、贪婪与懒惰
当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。以这个表达式为例:
a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。
有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。现在看看懒惰版的例子吧:
a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab(第一到第三个字符)和ab(第四到第五个字符)。
为什么第一个匹配是aab(第一到第三个字符)而不是ab(第二到第三个字符)?简单地说,因为正则表达式有另一条规则,比懒惰/贪婪规则的优先级更高:最先开始的匹配拥有最高的优先权——The match that begins earliest wins。
正则表达式系列暂时先写这么多吧,基础的差不多够用了,等后面有时间了,在继续写......
0 0
- 正则表达式入门教程(四)
- 正则表达式入门教程
- 正则表达式快速入门教程
- 正则表达式入门教程
- js正则表达式入门教程
- 正则表达式快速入门教程
- 正则表达式入门教程
- 正则表达式入门教程
- 正则表达式入门教程
- 正则表达式入门教程
- 正则表达式入门教程
- 正则表达式入门教程
- 经典正则表达式入门教程
- perl入门教程:正则表达式
- 正则表达式入门教程
- 正则表达式快速入门教程
- 正则表达式入门教程
- 正则表达式入门教程
- 字符串转换
- javascript基础(包装类和字符串相关的方法)(二十三)
- jQuery一些特效插件收集
- tx_isolation=READ-COMMITTED +binlog_format=STATEMENT产生的问题
- HDU-4734 F(x) (数位dp)
- 正则表达式入门教程(四)
- Activity生命周期笔记
- asm更改磁盘名 How to rename ASM disks
- 从阿里、微软、AWS财报看评云计算发展
- linux设备驱动归纳总结(四):4.单CPU下竞态和并发
- mysql引擎的介绍、区别及选择
- java设计模式---策略模式
- 【thinkphp 5 在nginx 环境下路由无法生效(404 500错误 )的解决方法】
- ngxin 反向代理 负载均衡 页面缓存 url重写几读写分离