- re模块
import re
re.match(正则表达式, 需要处理的字符串)
re.match(r"hello", “hello world”)
有返回值则匹配成功,无返回值则匹配不成功
a=re.match()
a.group() 得到匹配的信息 - 单个字符匹配
[ 1-8 ] 匹配1到8
【1-36-8】 1到3以及6到8
- re.match(正则表达式, 字符串, re.I) 忽略大小写
re.A 不考虑中文
re.U 中文也算
re.S 让 . 匹配任意包括
4.{}
前面紧挨着的重复几次
\d{1,3} 1到3位的数字
\d{3} 必须3位数字
\d{3 , } 表示3位或3位以上 - ?
1.前面紧挨着的可有可无 - 非贪婪
-
前面紧挨着的可以有多个或0个
7. +
前面紧挨着的可以有多个或1个
8. $
结尾
9. ^
1.出现在字符开头:开头
2. 不出现字符开头:表示非,举例:a^b 表示a后边非b
10. |
或
11. ()
分组,用group(n) 调用
groups() 调用所有分组
group(1,2) 调用第一和第二分组
\1 在正则表达式中调用第一个括号分组
分组取名 (?P<变量名>信息)
调用取名的分组 (?P=变量名)
12. search() 不从头匹配
match() 从头匹配
findall() 找到所有,无需group()
sub() 替换
举例:re.sub(r"\d+", “998”, “pyrhon = 997, c++ = 1024”)
输出 python = 998,c++ = 998
举例2:re.sub(r"\d+", fuction, “pyrhon = 997”) 调用函数
fuction(temp):
a = temp.group() a就等于997
return 997替换为return
split() 切割,无需group()
13.?:
适用于括号不读取分组