2.模式语法——重复

重复



模式中有5中表示重复的方法,现在一一展示:

符号 含义
* 出现0次或多次
+ 至少出现1次
出现0次或1次
{m} 出现m次
{m,n} 出现m到n次
出现0次或多次
# * 表示该模式会重复0次或多次(重复0次即意味着它不出现也能被匹配)
# 匹配a开头,后面为0个或多个b,也就是只要出现a就能匹配

import re

# 文本
text = 'a ac ab abb abbb'

# 匹配规则
pattern = 'ab*'

print(re.findall(pattern,text))

for i in re.finditer(pattern,text):
    print(i)

>>> 
['a', 'a', 'ab', 'abb', 'abbb']
<_sre.SRE_Match object; span=(0, 1), match='a'>
<_sre.SRE_Match object; span=(2, 3), match='a'>
<_sre.SRE_Match object; span=(5, 7), match='ab'>
<_sre.SRE_Match object; span=(8, 11), match='abb'>
<_sre.SRE_Match object; span=(12, 16), match='abbb'>
至少出现1次
# + 表示该模式至少出现一次
# 匹配a开头,后面至少有1个b的

import re

# 文本
text = 'a ac ab abb abbb'

# 匹配规则
pattern = 'ab+'

print(re.findall(pattern,text))

for i in re.finditer(pattern,text):
    print(i)

>>> 
['ab', 'abb', 'abbb']
<_sre.SRE_Match object; span=(5, 7), match='ab'>
<_sre.SRE_Match object; span=(8, 11), match='abb'>
<_sre.SRE_Match object; span=(12, 16), match='abbb'>
出现0次或1次
# ? 表示模式出现0次或1次
# 匹配a开头,后面为0个或1个b,也就是只要出现a就能匹配

import re

# 文本
text = 'a ab abb abbb'

# 匹配规则
pattern = 'ab?'

print(re.findall(pattern,text))

for i in re.finditer(pattern,text):
    print(i)

>>> 
['a', 'ab', 'ab', 'ab']
<_sre.SRE_Match object; span=(0, 1), match='a'>
<_sre.SRE_Match object; span=(2, 4), match='ab'>
<_sre.SRE_Match object; span=(5, 7), match='ab'>
<_sre.SRE_Match object; span=(9, 11), match='ab'>
出现m次
# 匹配a开头,后面3个b

import re

# 文本
text = 'a ab abb abbb'

# 匹配规则
pattern = 'ab{3}'

print(re.findall(pattern,text))

for i in re.finditer(pattern,text):
    print(i)

>>> 
['abbb']
<_sre.SRE_Match object; span=(9, 13), match='abbb'>
出现m到n次
# 匹配a开头,后面1到3个b

import re

# 文本
text = 'a ab abb abbb'

# 匹配规则
pattern = 'ab{1,3}'

print(re.findall(pattern,text))

for i in re.finditer(pattern,text):
    print(i)

>>> 
['ab', 'abb', 'abbb']
<_sre.SRE_Match object; span=(2, 4), match='ab'>
<_sre.SRE_Match object; span=(5, 8), match='abb'>
<_sre.SRE_Match object; span=(9, 13), match='abbb'>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,779评论 0 33
  • 整栋出租房子里 我是醒来最早的 也是睡着最晚的 我很喜欢自己这种状态 除了白天工作以外 还有大把时间和精力 用来 ...
    吻章阅读 195评论 0 0
  • 2016年8月28日,是月光如水社团两周岁的生日了,也是我加入社团两周年的日子。记得两年前,受一米姐姐的邀请,我在...
    一泓夜雨阅读 300评论 2 5
  • 好像什么也没经历似的,我就开始在这上班了。记忆已经模糊,有种恍如隔世的感觉,我应该,似乎没经历啥事。 忽然...
    奥丽佛儿阅读 244评论 0 0
  • 对于《一篇微博暴露出的奴隶心态》一文,引发了几位朋友的质疑。虽然我详细解释了不少,扔有追问。问题概括起来有权利义务...
    401文子阅读 275评论 0 0