正则表达式复习五——运算符优先级

运算符优先级

正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。

相同优先级的从左到右进行运算,不同优先级的运算先高后低。各种正则表达式运算符的优先级从最高到最低顺序:

序号 字符 含义
1 \ 转义符
2 (), (?:), (?=), [] 圆括号和方括号
3 *, +, ?, {n}, {n,}, {n,m} 限定符(量词)
4 ^, $, \任何元字符任何字符 定位点和序列(即:位置和顺序)
5 竖线 替换,"或"操作

字符具有高于替换运算符的优先级,使得 "m|food" 匹配 "m""food"。若要匹配 "mood""food",请使用括号创建子表达式,从而产生 "(m|f)ood"

一些常见正则表达式运算符按照优先级从高到低的顺序:

  • 转义符号: \ 是用于转义其他特殊字符的转义符号。它具有最高的优先级。

示例:\d\. 等,其中 \d 匹配数字,\. 匹配点号。

  • 括号: 圆括号 () 用于创建子表达式,具有高于其他运算符的优先级。

示例:(abc)+ 匹配 "abc" 一次或多次。

  • 量词: 量词指定前面的元素可以重复的次数。

示例:a* 匹配零个或多个 "a"

  • 字符类: 字符类使用方括号 [] 表示,用于匹配括号内的任意字符。

示例:[aeiou] 匹配任何一个元音字母。

  • 断言: 断言是用于检查字符串中特定位置的条件的元素。

示例:^ 表示行的开头,$ 表示行的结尾。

  • 连接: 连接在没有其他运算符的情况下表示字符之间的简单连接。

示例:abc 匹配 "abc"

  • 管道: 管道符号 | 表示"或"关系,用于在多个模式之间选择一个。

示例:cat|dog 匹配 "cat""dog"

posted @ 2024-01-15 20:50  艾前端  阅读(57)  评论(0编辑  收藏  举报