正则表达式计算方式和我们从小学习的算数运算一样,有优先级的概念,如果不知道优先级顺序,很可能出行不是想要的匹配结果,掌握优先级顺序能够避免不必要的错误发生,下面将介绍正则表达式中的优先级顺序:
优先级顺序从上到下 、从左到右依次降低 | 运算符 | 功能 |
---|---|---|
\ | 转义符 | |
(), (?:), (?=), [] | 括号 | |
*, +, ?, {n}, {n,}, {n, m} | 限定符 | |
^, $,\任意元字符 如:\d, \s, \w | 定位, 序列 | |
| | 或运算 |
示例如下:
import re
s = 'abc1234Abc123DEF323345Abc1223'
re.findall(r'([aA]bc|DEF)(\d+)', s)
# 返回结果如下
[('abc', '1234'), ('Abc', '123'), ('DEF', '323345'), ('Abc', '1223')]