[正则表达式]-基础语法四 元字符优先级
来源:互联网 发布:淘宝店卖假货会怎么样 编辑:程序博客网 时间:2024/06/04 23:26
在编程语言中,书本上往往爱考运算符优先级,动辄一串表达式十几个不同的运算符,难记难看。的确,优先级很重要,但是笔者总是爱使用()括号来进行限制,改变优先级,使视觉上更好的理解,这可能是比较下乘的武功吧。
而在正则表达式中,运算符或者更准确的说是元字符或者说是需要区分优先级的元字符,只有寥寥几个。所以,学习优先级,告别使用()括号是有必要的。
补充一句优先级可以使用括号来改变,除了\,如果遇到形如\(的正则表达式,就要先考虑转义了。因为\的优先级是正则表达式元字符中最高的,其次才是()括号。
这里特别要注意到是:“或”操作元字符 | 的优先级最低,如果遇到形如^z|food$的形式它可以匹配的是“行开头z”或者是“food行结尾” 因为^和$的优先级比 | 要高,优先运算它们两个,按照正常的需求与逻辑,应该是^(z|food)$ 。
如图:
.
所以在使用“或”操作 | 时,一定要注意它优先级最低这一事实。
在同一优先级中,运算顺序是从左到右的。譬如:
^a\d{2,3}$
优先级最高的是\d和a,随后是{2,3},最后是^ 和$ 。注意:单个字符拥有和\一样的优先级。
在分析正则表达式的时候,往往的依据是“或”操作 | 。依据 | 将表达式分解成几部分。
譬如:正则表达式22[0-3]|2[0-1][0-9]|1[0-9]{2}|[1-9][0-9]?|0 (请关注|的左侧优先性)
我们依据“或”运算 | 将这个表达式分为五部分,分别是22[0-3]、2[0-1][0-9]、1[0-9]{2}、[1-9][0-9]?、0我们逐个分析。
22[0-3] 匹配220到223
2[0-1][0-9] 匹配200到219
1[0-9]{2} 匹配100到199
[1-9][0-9]? 匹配1到99
0 匹配0
综合起来就是从0到223的数字集合。所以,分析正则表达式要以|入手
- [正则表达式]-基础语法四 元字符优先级
- [正则表达式]-基础语法一 元字符之定位符
- 正则表达式基础元字符
- Python 正则表达式---概念基础,匹配过程,表达式元字符和语法以及实例
- 正则表达式(基础)元字符含义
- [正则表达式]-基础语法二 元字符之限定符与贪婪模式
- 正则表达式--元字符
- 正则表达式--元字符
- 正则表达式元字符
- 正则表达式-元字符
- 正则表达式元字符
- 正则表达式元字符
- 正则表达式元字符
- 正则表达式元字符
- 正则表达式元字符
- 正则表达式-元字符
- 正则表达式元字符
- 正则表达式元字符
- 设计模式——观察者模式和回调机制
- wireshark学习总结(2)---字节偏移过滤器
- HDU 2102 BFS A计划
- Aizu 0189 (Floyd)
- StringBuffer
- [正则表达式]-基础语法四 元字符优先级
- [Unity] 接入Facebook SDK后,导出的Eclipse项目.发布APK失败
- CSS reset
- js数据转换boolean类型和短路逻辑-及其应用;
- Windows下搭建PHP开发环境
- PhoneGap框架
- JavaWeb 文件 上传 下载
- 动画学习之Animate.css的使用与解析
- ubuntu14.04+ROS Indigo +Kinectv2安装指南