BRE与ERE的差异
2016-07-04 11:11
495 查看
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字符
[] 方括号表达式
() 分组
* + ? {} 重复前置的正则表达式
无符号 连续
^ $ 锚点
| 交替
下面,来讨论一下这两种正则表达式之间的异同。
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字符
[] 方括号表达式
() 分组
* + ? {} 重复前置的正则表达式
无符号 连续
^ $ 锚点
| 交替
相关文章推荐
- android wifi 无线调试
- Unix 即将迎来 50 岁
- 运维入门
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- msql 正则表达式
- 正则表达式
- Linux VS Unix:Linux欲一统天下 Unix不死
- Linux Shell常用技巧
- Shell 脚本编程陷阱
- php7 扩展类的写法[2]
- php7 类的方法传参[3]
- php7 读取php.ini[4]
- Mootools 1.2教程 正则表达式
- C#、ASP.NET通用扩展工具类之TypeParse
- Lua编程示例(二):面向对象、metatable对表进行扩展
- Windows Powershell扩展类型系统
- shell字符串操作详解
- 批处理FINDSTR正则表达式用法实例分析