ps:默认匹配顺序为从左至右
re.match()
原型:match(pattern, string, flags = 0)
pattern:要匹配的正则表达式
string:要匹配的字符串
flags:标志位,用于控制正则表达式的匹配方式
- re.I 忽略大小写
- re.L 作本地用户识别
- re.M 多行匹配,影响’ ^ ‘和’ $ ‘两个元字符
- re.S ’ . ‘匹配包括换行符在内的所有字符
- re.U 根据Unicode字符集解析字符,影响“ \w、\W 、\B ”
- re.X 是我们以更灵活的格式理解正则表达式
功能:尝试从字符串的起始位置匹配一个编写好的模式,如果不是起始位置但匹配成功,也统一返回None
re.search()
原型:同上
功能:扫描整个字符串,并返回第一个成功的匹配对象
re.findall()
原型:同上
功能:扫描整个字符串,并返回所有成功的匹配结果(以列表形式)
– - - - - - - - - - - - - - - - - - - - - - - -匹配单个字符或数字- - - - - - - - - - - - - - - - - - - - - - - -
. 匹配除换行符以外的任意单个字符
[ ] 匹配 [ ] 内的所有所包含的任意一个字符,[ ]是字符集合,例如:
- [Hello]:匹配’ H ‘, ’ e ‘, ’ l ‘, ’ o ‘中的任意一个字符
- [A-Z]:匹配任意大写字母
- [0-9a-zA-Z_0]:匹配任意字母、数字、下划线
- [^Hello]:匹配除了’ Hello ‘这几个字母以外的所有字符,’ ^ ‘称为脱字符,表示不匹配指定集合中的字符
\d 匹配数字字符,效果同[0-9]
\D 匹配非数字字符,效果同[^0-9]
\w 匹配数字、字母、下划线,效果同[0-9a-zA-Z](用于判断标识符)
\W 匹配非数字、字母、下划线,效果同[^0-9a-zA-Z]
\s 匹配任意的空白符(空格、换行、回车、换页、制表)效果同[ \f\n\r\t]
\S 匹配任意的非空白符,效果同[^ \f\n\r\t]
– - - - - - - - - - - - - - - - - - - - - - - -锚字符(边界字符)- - - - - - - - - - - - - - - - - - - - - - - -
^ 每行行首匹配(在[]起另一个作用)
$ 每行行尾匹配
\A 匹配字符串开始,与’^’的区别是,该功能只匹配整个字符串的开头(在re.M模式下,也不会匹配每行行首)
\Z 匹配字符串结束,与’$’的区别是,该功能只匹配整个字符串的结尾(在re.M模式下,也不会匹配每行行尾)
\b 匹配一个单词的边界,也就是单词和空格间的位置
\B 匹配非单词的边界,也就是匹配单词内部部分字母
– - - - - - - - - - - - - - - - - - - - - - - - - -匹配多个字符或数字- - - - - - - - - - - - - - - - - - - - - -
ps:下方的x、y、z均为假设的普通字符,m、n是非负整数,不是正则表达式的元字符
(xyz) 匹配小括号内的xyz(作为一个整体去匹配)
x? 匹配0个或者1个x(至多1个x)
x* 匹配0个或者任意多个x(贪婪匹配)
x+ 匹配1个或者多个x(至少1个x,贪婪匹配)
x{n} 匹配确定的n个x
x{n, m} 匹配至少n个至多m个x(n <= m)
x | y 匹配x或者y
– - - - - - - - - - - - - - - - - - - - - - - - - - - -特殊- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*? +? (xyz)? 最小匹配,通常都是尽可能多地匹配,可以使用这种解决贪婪匹配
(?:x) 类似xyz,但不表示为一个组
附加: