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) | 连续 |
| ^$ | 锚点 |
| | | 交替 |