格式
import restr="你好啊123456我是第一"re_obj=re.compile('\w{3}(\d{4})')print(re_obj)res=re_obj.match(str)print(res.group(1))print(res.groups())#group 取元组集合,也可以指定下标,如果匹配失败调用group会报错#groups 只能取元组集合
常用的正则字符




\ 转义字符
#python中路径写法为 c:\\a.txt\n #换行\t #table制表符r'正则表达式' #不转义正则中的\例:re.meatch(r'c:\\a.txt','c:\\a.txt').group()
\1 分组使用
import restr="<html><h1>你好啊</h1></html>"res=re.match(r'<(.*)><(.*)>(.*)</\2></\1>',str)print(res.group())
?P 别名使用
import restr="<html><h1>你好啊</h1></html>"res=re.match(r'<(?P<name1>.*)><(?P<name2>.*)>(.*)</(?P=name2)></(?P=name1)>',str)print(res.group())
search 全文匹配一次 元组返回
import restr="<html><h1>你好啊</h1></html>"res=re.search('你好',str) #全文匹配一次匹配到就返回print(res) #返回的是一个元组(你好,123,42,我)
findall 全文匹配所有 列表返回
import restr="你好啊我啊123456我是第一"res=re.findall("我.",str) #全文匹配所有符合条件的关键字print(res) #返回的是一个列表['你好',123,42,'我']
split 分割 列表返回

import restr="hello world I Love Python"res=re.split(" ",str) #以列表的方式展示结果print(res)
sub 匹配并替换

import restr="hello world"res=re.sub("h","H",str) #全文搜索替换print(res)res=re.subn("h","H",str) #以元组的方式展示结果和替换次数print(res)
? 非贪婪模式
一般.*?配合使用就相当于取前后文本中间的内容
#贪婪:全文匹配符合条件的尽量多的数据#非贪婪:全文匹配符合条件的尽量少的数据import restr="aacbacba"reobj=re.compile("c.*a") #贪婪模式res=reobj.search(str)print(res.group())reobj=re.compile("c.*?a") #非贪婪模式res=reobj.search(str)print(res.group())
