python正则表达式:表达数量的字符

* 出现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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值