格式
import re
str="你好啊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 re
str="<html><h1>你好啊</h1></html>"
res=re.match(r'<(.*)><(.*)>(.*)</\2></\1>',str)
print(res.group())
?P 别名使用
import re
str="<html><h1>你好啊</h1></html>"
res=re.match(r'<(?P<name1>.*)><(?P<name2>.*)>(.*)</(?P=name2)></(?P=name1)>',str)
print(res.group())
search 全文匹配一次 元组返回
import re
str="<html><h1>你好啊</h1></html>"
res=re.search('你好',str) #全文匹配一次匹配到就返回
print(res) #返回的是一个元组(你好,123,42,我)
findall 全文匹配所有 列表返回
import re
str="你好啊我啊123456我是第一"
res=re.findall("我.",str) #全文匹配所有符合条件的关键字
print(res) #返回的是一个列表['你好',123,42,'我']
split 分割 列表返回
import re
str="hello world I Love Python"
res=re.split(" ",str) #以列表的方式展示结果
print(res)
sub 匹配并替换
import re
str="hello world"
res=re.sub("h","H",str) #全文搜索替换
print(res)
res=re.subn("h","H",str) #以元组的方式展示结果和替换次数
print(res)
? 非贪婪模式
一般.*?配合使用就相当于取前后文本中间的内容
#贪婪:全文匹配符合条件的尽量多的数据
#非贪婪:全文匹配符合条件的尽量少的数据
import re
str="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())