* 出现0次或无数次
import re
a = re.match('..','testasdtest')
print(a.group()) #输出te
a = re.match('.*','testasdtest')
print(a.group()) #全部输出
输出:
te
testasdtest
import re
print(re.match('a*','aatestasdtest')) #匹配跟随在字母a后面的所有a字符
a=re.match('a*','aatestaasdtest')
a2=re.match('a*','aaaaatestaasdtest')#添加3个字母a
print(re.match('\d*','23aatestasdtest')) #匹配前面为数字的字符
b=re.match('\d*','23aatestasdtest')
b2=re.match('\d*','23456aatestasdtest')#添加数字456
b3=re.match('\d*','23456aat123estasdtest')#rp:中间添加123
# b4=re.match('*\d','23aatestasdtest')#调换*与/d的位置报错
print(re.match('a\d*','ad23aatestasdtest')) #输出a, 因为*也可以代表0次
c=re.match('a\d*','ad23aatestasdtest')
print(a.group())
print(a2.group())
print(b.group())
print(b2.group())
print(b3.group())
# print(b4.group())
print(c.group())
输出:
<re.Match object; span=(0, 2), match='aa'>
<re.Match object; span=(0, 2), match='23'>
<re.Match object; span=(0, 1), match='a'>
aa
aaaaa
23
23456
23456
a
+ 至少出现一次
import re
print(re.match('a+','aaatestasdtest')) #匹配前面为字母a的字符,且a至少有1一个
a=re.match('a+','aaatestasdtest')
print(re.match('a+','atestasdtest')) #a
b=re.match('a+','atestasdtest')
print(re.match('a+','caaatestasdtest')) #none
c = re.match('a+','caaatestasdtest')#因为是空值,所以报错了
print(a.group())
print(b.group())
print(c.group())
输出:
? 1次或则0次
import re
print(re.match('a?','abatestasdtest')) #匹配a出现0次或者1次数
print(re.match('a?','batestasdtest')) #输出空,因为a可以为0次
print(re.match('a?','aaatestasdtest')) #a出现0次或者1次,输出1个a
a=re.match('a?','abatestasdtest')
b=re.match('a?','batestasdtest')
c=re.match('a?','aaatestasdtest')
print(a.group())
print(b.group())
print(c.group())
输出:
<re.Match object; span=(0, 1), match='a'>
<re.Match object; span=(0, 0), match=''>
<re.Match object; span=(0, 1), match='a'>
a
a
{m,} 至少出现m次
import re print(re.match('to{3}','toooooabatestasdtest')) #匹配t以及跟随在后面的三个ooo a=re.match('to{3}','toooooabatestasdtest')#RP:离3最近的数 print(a.group()) b=re.match('tp{3}','tpppoooooabatestasdtest')#RP:测试成功 print(b.group()) print(re.match('to{3}','tooabatestasdtest')) #只有两个0,返回none
<re.Match object; span=(0, 4), match='tooo'>
tooo
tppp
None
{m,n} 指定从m-n次的范围
import re
print(re.match('to{3,4}','toooabatestasdtest')) #刚好有三个ooo,成功匹配 注:rP至少有3个ooo
a=re.match('to{3,4}','toooabatestasdtest')
print(a.group())
print(re.match('to{3,4}','tooabatestasdtest')) #只有两个o,返回none
# b=re.match('to{3,4}','tooabatestasdtest')
# print(b.group())
print(re.match('to{3,4}','toooooabatestasdtest')) #提取最多四个o
c=re.match('to{3,4}','toooooabatestasdtest')
print(c.group())
d=re.match('to{3,5}','toooooabatestasdtest')#rp:5个测试成功
print(d.group())
输出:
<re.Match object; span=(0, 4), match='tooo'>
tooo
None
<re.Match object; span=(0, 5), match='toooo'>
toooo
tooooo