罕用函数:
1.re.match开始地位匹配,没有匹配到就返回(即便正则表达式没有用^申明匹配结尾)
input="入门小站"#P<name>分组命名reg=re.compile(r'(?P<name>入门)')res=reg.match(input)if res: print(res.groupdict()) print(res.groups()) print(res.groups())
{'name': '入门'}('入门',)('入门',)
2.re.search搜寻整个字符串
# 扫描整个 字符串 找到匹配款式的第一个地位,并返回一个相应的 匹配对象。如果没有匹配,就返回一个 None input='''入门小站入门入门教程'''reg=re.compile(r'入门(?:小站|教程)',re.S)res=reg.search(input)if res: print(res.group())
入门小站
3.re.findall查找到字符串所有的匹配项,并返回一个list
input='''入门小站入门入门教程'''# re.M多行模式匹配reg=re.compile(r'^入门(?:小站|教程)$',re.M)res=reg.findall(input)if res: print(res)
['入门小站', '入门教程']
4.re.split字符串宰割
# split(pattern, string, maxsplit=0, flags=0)# maxsplit 最大的宰割次数input='''入门123小站dd入门'''reg=re.compile(r'[a-z0-9]+')res=reg.split(input)print(res)reg=re.compile(r'[a-z0-9]+')res=reg.split(input,1)print(res)
['\n入门\n', '\n小站\n', '\n入门\n']['\n入门\n', '\n小站\ndd\n入门\n']
5. re.sub字符串替换
# 语法 sub(pattern, repl, string, count=0, flags=0)# repl 被替换成的字符串# count指定替换的次数input='''入门123小站456dd入门'''reg=re.compile(r'([a-z0-9]{1,})',re.M)res=reg.sub('11',input)print(res)# 替换1次reg=re.compile(r'([a-z0-9]{1,})',re.M)res=reg.sub('11',input,1)print(res)
入门11小站1111入门
入门11小站456dd入门
6. re.subn
# 语法 subn(pattern, repl, string, count=0, flags=0)# repl 被替换成的字符串# count指定替换的次数# 返回后果中蕴含替换的次数input='''入门123小站456dd入门'''reg=re.compile(r'([a-z0-9]{1,})',re.M)res=reg.subn('11',input)print(res)
('\n入门\n11\n小站\n11\n11\n入门\n', 3)