BRE与ERE的差异
来源:互联网 发布:台湾也用淘宝吗 编辑:程序博客网 时间:2024/05/22 10:35
POSIX有两种风格的正则表达式:基本正则表达式(BRE)与扩展正则表达式(ERE)。
下面,来讨论一下这两种正则表达式之间的异同。
meta字符
相同之处:
\ 用以关闭后续字符的特殊含义
. 匹配任何的单个字符,NUL除外
* 匹配在它之前的任何数目的单个字符
# 匹配紧接着的正则表达式,在行或字符串的起始处
$ 匹配前面的正则表达式,在行或字符串的结尾处
[…] 匹配括号内的任一字符
相异之处:
\{n,m\} BRE 区间表达式,匹配在它前面的单个字符重现的次数区间
{n,m} ERE 区间表达式,匹配在它前面的单个字符重现的次数区间
BRE 表示子模式,可通过转义序列来引用(例如\1)
( ) ERE 匹配与括起来的正则表达式
\n BRE 重复在
与
括号内的第n个子模式。n为1至9的数字。
+ ERE 匹配前面正则表达式的一个或多个实例
? ERE 匹配前面正则表达式的零个或一个实例
| ERE 匹配于|符号前或后的正则表达式
^与$仅在BRE的起始与结尾处具有特殊用途。在BRE下,ab^cd里的^表示的,就是自身的^,并不是meta字符;同样,ef$gh里的$在这里表示的也就是字面上的美元符号。然后在ERE里,^与$永远是meta字符。所以,像ab^cd与ef$fg这样的正则表达式仍是有效的,只是无法匹配到任何东西。
运算符优先级
相异之处:
BRE的运算符优先级(由高至低递减)
[..] [==] [::] 用于字符排序的方括号符号
\metacharacter 转义的meta字符
[] 方括号表达式
\digit 子表达式与后向引用
* \{ \} 前置单个字符重现的正则表达式
无符号 连续
^ $ 锚点
ERE的运算符优先级(由高至低递减)
[..] [==] [::] 用于字符排序的方括号符号
\metacharacter 转义的meta字符
[] 方括号表达式
() 分组
* + ? {} 重复前置的正则表达式
无符号 连续
^ $ 锚点
| 交替
- BRE与ERE的差异
- BRE与ERE的差异
- BRE与ERE的异同
- BRE与ERE的区别
- 正则表达式 BRE 与 ERE的区别
- globbing、ERE、BRE的比较
- 从BRE 与 ERE的文法看两者的异同
- POSIX 正则表达式 BRE 与 ERE的区别
- 正则表达式之BRE与ERE字符集
- grep BRE ERE
- POSIX BRE和ERE的metacharacters(元字符)
- POSIX BRE和ERE的metacharacters(元字符)
- ere
- ere
- 几种开源规则引擎(BRE)的比较
- Websphere与Tomcat的差异
- sp_executesql 与 execute 的差异
- Ice与CORBA的差异
- EventBus源码分析(二):register方法保存事件的订阅者列表(2.4版本)
- php 制作文件上传类
- 键盘按键对应的数字
- iOS开发的一些奇巧淫技
- qxorm,开始
- BRE与ERE的差异
- iOS解决按钮短时间内多次点击只触发一次事件方法(开始写博客)
- vim基本命令备注
- TCP流量控制和拥塞控制
- 【HNOI2014】世界树
- Linux/Unix中如何在复制一个目录时排除其中的某个文件
- 一个可以创建任何艺术家风格的电影的神经网络
- 常见数据库常用数据类型、默认端口
- Lesson 3:复合类型