正则的——字符数量表示
  qNKcuKq8k1lD 2023年11月02日 49 0

1、{n}:表示前一个字符连续出现

res = re.findall("\d{3}", "123aaa1111bb2323fs55555")print(res)

运行结果:['123', '111', '232', '555']

2、“贪婪模式”概念

贪婪模式:python中正则匹配数量的时候,默认是贪婪模式
非贪婪默认:在表示数量范围后面加个?,就可以关闭贪婪模式

表示范围的有:{n,m}、{3,}、+、*

只有表示数量范围的才存在贪婪默认

3、{n,m}:表示前一个字符连续出现n到m次

默认贪婪模式:

res = re.findall("\d{3,4}", "123aaa1111bb2323fs55555")print(res)

运行结果:['123', '1111', '2323', '5555']

非贪婪模式:

res = re.findall("\d{3,4}?", "123aaa1111bb2323fs55555")print(res)

运行结果:

4、{n,}:表示前一个字符至少连续出现n次

默认贪婪模式:

res = re.findall("\d{3,}", "123aa22a1111bb2323fs55555ss555565745bgg455625765757")print(res)

运行结果:['123', '1111', '2323', '55555', '555565745', '455625765757']

非贪婪模式:

res = re.findall("\d{3,}?", "123aa22a1111bb2323fs55555ss555565745bgg455625765757")print(res)

运行结果:['123', '111', '232', '555', '555', '565', '745', '455', '625', '765', '757'] (只匹配连续的3个)

5、+:表示前一个字符至少出现1次以上

默认贪婪模式:

res = re.findall("[a-z]+", "123aa22a1111bb2323fs55555ss555565745bgg455625765757")print(res)

运行结果:['aa', 'a', 'bb', 'fs', 'ss', 'bgg']

非贪婪模式:

res = re.findall("[a-z]+?", "123aa22a1111bb2323fs55555ss555565745bgg455625765757")print(res)

运行结果:['a', 'a', 'a', 'b', 'b', 'f', 's', 's', 's', 'b', 'g', 'g']

6、*:表示前一个字符至少出现0次以上

默认贪婪模式:

res = re.findall("[a-z]*", "123aa22a1111bb")print(res)

运行结果:['', '', '', 'aa', '', '', 'a', '', '', '', '', 'bb', '']

非贪婪模式:

res = re.findall("[a-z]*?", "123aa22a1111bb")print(res)

运行结果:['', '', '', '', 'a', '', 'a', '', '', '', 'a', '', '', '', '', '', 'b', '', 'b', '']

7、解决项目中的数据匹配

data = '{"member_id":"#member_id#","pwd":"#pwd#","user":"##","loan_id":"#l#"}'res = re.findall("#.*?#", data)print(res)

运行结果:['#member_id#', '#pwd#', '##', '#l#']

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
qNKcuKq8k1lD
作者其他文章 更多
最新推荐 更多