1. re.match(pattern,string,flags = 0)
match方法,尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,返回none
pattern --> 匹配的正则表达式
string --> 要匹配的字符串
flags --> 标志位,用于控制正则表达式的匹配方式,可以匹配的值有:
re.I 不区分大小写
re.L 本地化搜索
re.M 多行匹配,影响^和$
re.S 是匹配包括换行符在内的所有字符
re.U 根据Unicode字符集解析字符,影响 \W \w \b \B
re.X 使我们以更灵活的格式理解正则表达式
2. re.search(pattern,string,flags = 0)
search方法,扫描整个字符串,并返回第一个成功的匹配
pattern --> 匹配的正则表达式
string --> 要匹配的字符串
flags --> 标志位,用于控制正则表达式的匹配方式
3. re.findall(pattern,string,flage = 0)
findall方法,扫描整个字符串,并返回匹配成功列表
pattern --> 匹配的正则表达式
string --> 要匹配的字符串
flags --> 标志位,用于控制正则表达式的匹配方式
4.匹配单个字符与数字
. 匹配除换行外的其他所有字符
[1234567890] 匹配所有数字,又不确定是数字的时候可以使用
[] 匹配括号中的字符,例如[sunck] 匹配"s"或"u"或"n"或"c"或"k"
[a-z] 匹配任意小写字母
[A-Z] 匹配任意大写字母
[0-9] 匹配任意数字,效果同[1234567890]
[0-9a-zA-Z] 匹配任意大写,小写,数字
[0-9a-zA-Z_] 匹配任意大写,小写,数字以及下划线
[^sunck] 匹配除了sunck以外的字符,^称为脱字符,表示不匹配集合中的字符
[^0-9] 匹配非数字以外的所以字符
\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]
5.锚字符
^ 行首匹配,效果与[]中不同
$ 行尾匹配
\A 从字符串的开始匹配,和^的区别是:\A只匹配整个字符串的开头,即使是在re.M模式下,也只匹配字符串的开头
\Z 从字符串的末尾开始匹配,和$的区别是:\Z只匹配整个字符串的末尾,即使是在re.M模式下,也只匹配字符串的末尾
\b 匹配一个字符串的边界,也就是空格和单词的位置
\B 匹配非单词边界
6.匹配多个字符串
说明:一下例子中,x,y,z 均为假设的普通字符,n,m为非负整数
x? 匹配0个或者1个x
x* 匹配0个或者任意多个x(.* 匹配0个或者任意多个字符(换行符\n除外))
x+ 匹配至少一个x
x{n} 匹配确定的n个x
x{n,} 匹配至少n个x
x{n,m} 匹配至少n个x,最多m个x
x|y 匹配x或者y
7.特殊情况
*? +? x? 最小匹配 通常都是尽可能多的匹配,可以使用这种方式解决贪婪匹配
match方法,尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,返回none
pattern --> 匹配的正则表达式
string --> 要匹配的字符串
flags --> 标志位,用于控制正则表达式的匹配方式,可以匹配的值有:
re.I 不区分大小写
re.L 本地化搜索
re.M 多行匹配,影响^和$
re.S 是匹配包括换行符在内的所有字符
re.U 根据Unicode字符集解析字符,影响 \W \w \b \B
re.X 使我们以更灵活的格式理解正则表达式
2. re.search(pattern,string,flags = 0)
search方法,扫描整个字符串,并返回第一个成功的匹配
pattern --> 匹配的正则表达式
string --> 要匹配的字符串
flags --> 标志位,用于控制正则表达式的匹配方式
3. re.findall(pattern,string,flage = 0)
findall方法,扫描整个字符串,并返回匹配成功列表
pattern --> 匹配的正则表达式
string --> 要匹配的字符串
flags --> 标志位,用于控制正则表达式的匹配方式
4.匹配单个字符与数字
. 匹配除换行外的其他所有字符
[1234567890] 匹配所有数字,又不确定是数字的时候可以使用
[] 匹配括号中的字符,例如[sunck] 匹配"s"或"u"或"n"或"c"或"k"
[a-z] 匹配任意小写字母
[A-Z] 匹配任意大写字母
[0-9] 匹配任意数字,效果同[1234567890]
[0-9a-zA-Z] 匹配任意大写,小写,数字
[0-9a-zA-Z_] 匹配任意大写,小写,数字以及下划线
[^sunck] 匹配除了sunck以外的字符,^称为脱字符,表示不匹配集合中的字符
[^0-9] 匹配非数字以外的所以字符
\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]
5.锚字符
^ 行首匹配,效果与[]中不同
$ 行尾匹配
\A 从字符串的开始匹配,和^的区别是:\A只匹配整个字符串的开头,即使是在re.M模式下,也只匹配字符串的开头
\Z 从字符串的末尾开始匹配,和$的区别是:\Z只匹配整个字符串的末尾,即使是在re.M模式下,也只匹配字符串的末尾
\b 匹配一个字符串的边界,也就是空格和单词的位置
\B 匹配非单词边界
6.匹配多个字符串
说明:一下例子中,x,y,z 均为假设的普通字符,n,m为非负整数
x? 匹配0个或者1个x
x* 匹配0个或者任意多个x(.* 匹配0个或者任意多个字符(换行符\n除外))
x+ 匹配至少一个x
x{n} 匹配确定的n个x
x{n,} 匹配至少n个x
x{n,m} 匹配至少n个x,最多m个x
x|y 匹配x或者y
7.特殊情况
*? +? x? 最小匹配 通常都是尽可能多的匹配,可以使用这种方式解决贪婪匹配