正则表达式基础·数量


import re
#通过正则表达式的规则,匹配我们需要的数据
str1 = "ashsda ik13478907890sdah13465455890sdas 13466907890dasd "
res = re. findall( '\d{11}',str1)
print(res)

#----------------------------表示数量----------------------------
s1 = '1234aann754bb112233.555222aaa123456789 '

#表示{n}  n 表示前面的字符出现 n 次
res1 = re.findall('\d{3}',s1)
res2 = re.findall('\d\d\d\d\d',s1)   #res2 == res1
print(res1)
print(res2)

# #表示{n,}  n 表示前一个字符出现 n 次
res2 = re.findall('\d{3,}',s1)
print(res2)

#表示{n,m}  表示前一个字符出现 n-m 次 · 贪婪模式
res2 = re.findall('\d{3,7}',s1)
print(res2)
#非贪婪模式
res2 = re.findall('\d{3,7}?',s1)
print(res2)
# -----------------------------贪婪模式----------------------
# 默认是开启贪婪模式,关闭贪婪模式:再{}表示数量范围的后面加 ?
# 贪婪模式的应用
params = '{"id": "#id#", "name": "#name#", "data": "#data#", "title": "#title#", "aaa": 11,"bbb": 222}'
# 需求:#包裹部分#  取出来#和#包裹的部分#id#  #name#
res = re.findall("#.{1,}?#",params)
print(res)      #['#id#', '#name#', '#data#', '#title#']

# --------------------------------------------------

# + :表示一次以上 -------> 等同于{1,}
params = '{"id": "#id#", "name": "#name#", "data": "#data#", "title": "#title#", "aaa": 11,"bbb": 222}'
# res = re.findall("#.{1,}?#",params)
res1 = re.findall("#.+?#",params)   #和res相等
print(res1)

# * : 表示0次以上
res2 = re.findall("#.*?#",params)
print(res2)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值