BRE与ERE运算符优先级,由高到低


1、BRE运算符优先级,由高到低

运算符 表示意义
[...] [==] [::] 用于字符排序的方括号符号
\metacharacter 转义字符
[] 方括号表达式
() \digit 子表达式与后向引用
*{} 前置单个字符重现的正则表达式
无符号(no symbol) 连续
^$ 锚点

((read|write[[:space:]]*)+ 这则正则表达式表达的是:用以匹配多个连续出现的read或是write,且中间可能被空白字符隔开。在[[:space:]]之后使用*是一种判断调用,使用一个*而非+,此匹配可以取得在行(或字符串)结尾的单词。但也可能可以匹配中间完全没有空白的单词。

|为所有运算符中优先级最低的。

正则表达式^abcd|efgh$的意思是”匹配字符串的起始处是否有abcd,后者字符串结尾处是否有efgh“。这和^(abcd|efgh)$不一样,后者表示的是找一个正是abcd或正是efgh的字符串。

2、ERE运算符优先级,由高到低

运算符 表示意义
[...] [==] [::] 用于字符排序的方括号符号
\metacharacter 转义字符
[] 方括号表达式
() 分组
*+?{} 重复前置的正则表达式
无符号(no symbol) 连续
^$ 锚点
| 交替