正则表达式
概述:一个强大的字符串处理工具,本质是一个特殊的字符序列,可以方便的检查一个字符串是否与我们定义的字符序列的某种匹配模式相匹配
通过 import re模块使用
模式 | 描述 |
---|---|
$ | 匹配字符串的结尾 |
^ | 匹配字符串的开头 |
. | 匹配除“\n”在内的任何字符,要匹配包括“\n”在内的任何字符,请使用像[.\n]的模式。 |
[…] | 用来表示一组字符,单独列出:[amk]匹配‘a’,‘m,‘k’ |
[^…] | 不在[]中的字符 |
re* | 匹配0个或多个的表达式 |
re+ | 匹配1个或多个表达式 |
re? | 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式 |
re{n} | 匹配n个前面表达式。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o |
re{n,} | 精确匹配n个前面表达式。例如,“o{2,}”不能匹配“Bob”中的“o”,但是可以匹配“fooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*” |
re{n,m} | 匹配n到m次由前面的正则表达式定义的片段,贪婪方式 |
`a | b` |
ps:上表中re代表自己写的某一个具体匹配模式
修饰符-可选标志
正则表达式可以包含一些可选白哦之修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位OR(I)他们指定。如:re.I | re.M标志;
修饰符 | 描述 |
---|---|
re.I | 使匹配对大小写不敏感 |
re.L | 做本地化识别(locale-aware)匹配 |
re.M | 多行匹配,影响^和$ |
re.S | 使 . 匹配包括换行在内的所有字符 |
re.U | 根据Unicode字符集解析字符。这个标志影响\w,\W,\b,\B |
re.X | 该标志通过给予你更灵活的格式以便你将正则表达式写的更加易于理解 |
运算符优先级
正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常相似。
相同优先级的从左到右进行运算,不同优先级的运算先高后低。
正则表达式的优先级
运算符 | 描述 |
---|---|
\ | 转义符 |
(),(?),(?=),[] | 圆括号和方括号 |
*,+,?,{n},{n,},{n,m} | 限定符 |
^,$,\任何元字符、任何字符 | 定位点和序列(即:位置和顺序) |