Appearance
正则表达式
正则表达式指的是匹配规则。例如在一群学生中,找到学号里带3这个数的学生,那么我们可以写一个规则,去判断学生学号里是否带有3。
python中的正则需要导入re模块来使用。
python
import re
str = 'hello, every one have EEEE!'
res = re.search('h(\m)s', str)
print(res.groups())匹配字符
| 特殊字符 | 描述 |
|---|---|
| \d | 匹配任何十进制数字,与[0-9]一致 |
| \D | 匹配任意非数字 |
| \w | 匹配任何字母、数字、下划线,以及unicode字符集 |
| \W | 匹配非字母数字及下划线 |
| \s | 匹配任何空格字符,与[\n\t\r\v\f]相同 |
| \S | 匹配任何非空字符 |
| \A | 匹配字符串的起始 |
| \Z | 匹配字符串的结束 |
| . | 匹配任何字符(除了\n) |
量词符号
| 符号 | 描述 |
|---|---|
| ^ | 匹配字符串起始部分 |
| $ | 匹配字符串终止部分 |
| * | 匹配0次或多次 |
| + | 匹配1次或多次 |
| 匹配N次前面出现的正则表达式 | |
| 匹配M~N次前面出现的正则表达式 |
选择符号
| 符号 | 描述 |
|---|---|
| re1|re2 | 匹配正则表达式re1或re2 |
| [...] | 匹配来自字符集的任意单一字符 |
| [...x-y...] | 匹配x~y范围中的任意单一字符 |
| [^...] | 不匹配此字符集中出现的任何一个字符,包括某一范围的字符 |
| \ | 特殊字符无效化 |
组
| 符号 | 描述 |
|---|---|
| () | 在匹配规则中获取指定的数据 |
re中的api
| API | 描述 |
|---|---|
| findall | 在目标字符串中找到所有符合条件的子串 |
| search | 返回符合条件的子串所形成的组。以groups获取所有组,或者以group(序号)获得特定序号的组。序号从1开始。 |
| split | 以符合条件的子串为分隔符,将父串分割,返回分割后的列表 |
| match | 使用带有可选的标记的正则表达式的模式来匹配字符串。匹配成功就返回匹配对象;失败则返回None |
| compile | 定义一个匹配规则的对象 |
额外匹配要求
| 属性 | 描述 |
|---|---|
| re.I,或re.IGNORECASE | 不区分大小写 |
| re.L,或re.LOCALE | 以本地语言环境通过\w\W\s\S匹配。可近似看做utf-8 |
| re.M,或re.MULTILINE | ^和$匹配目标字符串中行的起始和结尾 |
| re.S,或re.DOTALL | 点号匹配全部字符 |
| re.X,或re.VERBOSE | 忽略规则表达式中的空白和注释 |