2.模式語(yǔ)法——重復(fù)

重復(fù)



模式中有5中表示重復(fù)的方法,現(xiàn)在一一展示:

符號(hào) 含義
* 出現(xiàn)0次或多次
+ 至少出現(xiàn)1次
? 出現(xiàn)0次或1次
{m} 出現(xiàn)m次
{m,n} 出現(xiàn)m到n次
出現(xiàn)0次或多次
# * 表示該模式會(huì)重復(fù)0次或多次(重復(fù)0次即意味著它不出現(xiàn)也能被匹配)
# 匹配a開(kāi)頭,后面為0個(gè)或多個(gè)b,也就是只要出現(xiàn)a就能匹配

import re

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

# 匹配規(guī)則
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'>
至少出現(xiàn)1次
# + 表示該模式至少出現(xiàn)一次
# 匹配a開(kāi)頭,后面至少有1個(gè)b的

import re

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

# 匹配規(guī)則
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'>
出現(xiàn)0次或1次
# ? 表示模式出現(xiàn)0次或1次
# 匹配a開(kāi)頭,后面為0個(gè)或1個(gè)b,也就是只要出現(xiàn)a就能匹配

import re

# 文本
text = 'a ab abb abbb'

# 匹配規(guī)則
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'>
出現(xiàn)m次
# 匹配a開(kāi)頭,后面3個(gè)b

import re

# 文本
text = 'a ab abb abbb'

# 匹配規(guī)則
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'>
出現(xiàn)m到n次
# 匹配a開(kāi)頭,后面1到3個(gè)b

import re

# 文本
text = 'a ab abb abbb'

# 匹配規(guī)則
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'>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問(wèn)題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,916評(píng)論 0 33
  • 整棟出租房子里 我是醒來(lái)最早的 也是睡著最晚的 我很喜歡自己這種狀態(tài) 除了白天工作以外 還有大把時(shí)間和精力 用來(lái) ...
    吻章閱讀 213評(píng)論 0 0
  • 2016年8月28日,是月光如水社團(tuán)兩周歲的生日了,也是我加入社團(tuán)兩周年的日子。記得兩年前,受一米姐姐的邀請(qǐng),我在...
    一泓夜雨閱讀 352評(píng)論 2 5
  • 好像什么也沒(méi)經(jīng)歷似的,我就開(kāi)始在這上班了。記憶已經(jīng)模糊,有種恍如隔世的感覺(jué),我應(yīng)該,似乎沒(méi)經(jīng)歷啥事。 忽然...
    奧麗佛兒閱讀 264評(píng)論 0 0
  • 對(duì)于《一篇微博暴露出的奴隸心態(tài)》一文,引發(fā)了幾位朋友的質(zhì)疑。雖然我詳細(xì)解釋了不少,扔有追問(wèn)。問(wèn)題概括起來(lái)有權(quán)利義務(wù)...
    401文子閱讀 327評(píng)論 0 0

友情鏈接更多精彩內(nèi)容