- re.match():尝试从字符串的起始位置匹配一个规则,匹配成功就返回match对象,否则None。可以使用group()获取匹配成功的字符串。
语法:re.match(pattern,string,flags=0),特别地,标志位为re.I:使匹配对大小写不敏感
参数 | 描述 | pattern | 匹配的正则表达式 | string | 要匹配的字符串 | flags | 标志位,用于控制匹配方式 |
常用匹配规则:数字(digit)、空格(space)、单词(word)
匹配规范:不能以数字开头,只能包含字母、数字、下划线
符号 | 匹配规则 | .(点) | 匹配任意1个字符(除换行符\n) | \w | 匹配单词字符,即a-z、A-Z、0-9、_ | \W | 匹配非单词字符 | \s | 匹配空白,即空格、tab键 | \S | 匹配飞空白,除空格、tab键 | \d | 匹配一个数字,即0-9 | \D | 匹配非数字 | \A | 只从字符开头匹配,比如re.search('\Aabc','gggggabc') 匹配不到 | \Z | 匹配字符串结尾,如果存在换行,只匹配到换行前的结束字符串,跟$一样 | \z | 匹配字符串结尾,如果存在换行,匹配到换行符\n | \n | 匹配换行符 | \t | 匹配tab键 | ^ | 匹配一行字符串的开头 | $ | 匹配一行字符串的结尾 | [...] | []里面的字符为匹配的字符集合,比如[abc]表示匹配a或b或c | [^...] | 匹配不在[]里面的字符,比如[^abc]匹配除a,b,c以外的字符 | * | 匹配 '*’ 前面的字符出现0次或以上,即可有可无,相当于{0,} | + | 匹配 '+’ 前面的字符出现1次或以上,即至少有一次,相当于{1,} | ? | 匹配 '?’ 前面的字符出现1次或0次,即要么有一次,要么没有,相当于{0,1} | {m} | 匹配 {m} 前面的字符出现m次 | {m,} | 匹配 {m,} 前面的字符至少出现m次 | {n,m} | 匹配 {n,m} 前面的字符出现从n到m次 | ^A.* | 头匹配,例如:ABC | .*A$ | 尾匹配,例如:CBA | ^A.*A$ | 全字匹配,例如:ABCA |
- group():匹配的整个表达式的字符串,group()可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
- groups():返回一个包含所有小组字符串的元组,从1到所含的小组号。
- re.compile():将正则表达式模式编译成一个正则表达式对象,比直接match()效率更高。
例:reg=re.compile(pattern) ,result=reg.match(string)等价于result=re.match(pattern,string)
- re.search():在全文中匹配一次,匹配到就返回。返回的是match可迭代对象,语法格式与match()类似。
- re.finditer():查询字符串中某个正则表达式全部的情况,返回的是match可迭代对象,语法格式与match()类似。
- re.findall():查询字符串中某个正则表达式全部的情况,返回的是一个符合正则表达式的结果列表。是match对象,不是迭代对象,可直接打印,不需要group(),语法格式与match()类似。
- re.sub():将匹配到的字符串进行替换。字符串可直接输出。
语法:re.sub(pattern,repl,string,count=0,flags=0)
参数 | 描述 | pattern | 匹配的正则表达式 | repl | 替换的字符串,也可以为一个函数 | string | 要匹配的字符串 | count | 模式匹配后最大替换次数,默认0表示替换所有的匹配 | flags | 标志位,用于控制匹配方式 |
- re.subn():将匹配到的字符串进行替换,以元组的形式返回被替换后的字符串和替换数量。
- re.split():根据匹配进行切割字符串,并返回一个列表,可直接输出。
语法:re.split(pattern,string,maxsplit=0,flags=0)
参数 | 描述 | pattern | 匹配的正则表达式 | string | 要匹配的字符串 | maxsplit | 分隔次数,maxsplit=1分隔一次,默认0表示不限制次数 | flags | 标志位,用于控制匹配方式 |
|