【Pythno库】-Re
官方文档
https://docs.python.org/zh-cn/3.9/library/re.html?highlight=re#module-re
常用操作符
操作符 | 说明 | 实例 |
---|---|---|
. | 表示任何单个字符 | |
[ ] | 字符集,对单个字符给出取值范围 | [ab]表示a|b,[a-z]表示a到z单个字符 |
[^ ] | 非字符集,对单个字符给出排除范围 | [^abc]表示除a|b|v的单个字符 |
* | 前一个字符0次或无限次扩展 | abc* 表示ab|abc|abcc|abccc等 |
+ | 前一个字符1次或无限次扩展 | abc+ 表示abc|abcc|abccc等 |
? | 前一个字符0次或1次扩展 | abc? 表示ab|abc |
| | 左右表达式任意一个 | abc|def 表示abc或def |
扩展前一个字符m次 | ab{2}c表示abbc | |
扩展前一个字符m至n次(含n) | ab{1,2}c表示abc、abbc | |
^ | ||
$ | ||
( ) | ||
主要函数
-
re.match
从一个字符串的开始位置起匹配正则表达式。
re.match(pattern,string,flags=0)
如果能够匹配到,返回符合要求的第一个match对象(全匹配),否则返回None
match = re.match(r'[a-zA-Z_]([a-zA-Z_]|[0-9])*','age = 18') print(match) #<_sre.SRE_Match object; span=(0, 3), match='age'> print(bool(match) #True
match.group()或match.group(0) 返回全部组对象(即正则表达式中()的内容)
print(match.group(0)) #age
match.group(n),可返回patten中第n个()中对应的内容,否则报错
IndexError: no such group
,如果重复出现,输出最后一个print(match.group(1)) #e
-
re.findall
搜索字符串,以列表类型返回全部能匹配的子串 (挑选匹配)
re.findall(pattern,string,flags=0)