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)
10-25
918