Krokainās iekavas Python regulārajās izteiksmēs
Operatori '+', '*', '?'
ir labi, tomēr ar to palīdzību nevar norādīt
konkrētu atkārtojumu skaitu. Šajā gadījumā
jums palīdzēs operators {}.
Tas darbojas šādi: {5}
- pieci atkārtojumi, {2,5} – atkārtojas
no diviem līdz pieciem (abi ieskaitot), {2,}
- atkārtojas divas vai vairāk reizes. Apskatiet
piemērus:
Piemērs
Šajā piemērā meklēšanas šablons izskatās
šādi: burts 'x', burts 'a'
vienu vai divas reizes, burts 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Koda izpildes rezultāts:
'xx ! ! xaaax'
Piemērs
Šajā piemērā meklēšanas šablons izskatās
šādi: burts 'x', burts 'a'
divas reizes vai vairāk, burts 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Koda izpildes rezultāts:
'xx xax ! !'
Piemērs
Šajā piemērā meklēšanas šablons izskatās
šādi: burts 'x', burts 'a'
trīs reizes, burts 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Koda izpildes rezultāts:
'xx xax xaax !'
Piemērs
Šajā piemērā meklēšanas šablons izskatās
šādi: burts 'a' desmit reizes:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Koda izpildes rezultāts:
'aaa ! aaa'
Piemērs
Šajā piemērā ir šāds šablons: burts
'x', burts 'a' trīs reizes reizes
vai mazāk, burts 'x'. Lai to
realizētu, pirms cipara 3
var norādīt tikai komatu:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Koda izpildes rezultāts:
'! ! ! !'
Piemērs
Nulle pirms 3 ir arī pieļaujama:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Koda izpildes rezultāts:
'! ! ! !'
Praktiskie uzdevumi
Dota virkne:
txt = 'aa aba abba abbba abbbba abbbbba'
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
'abba', 'abbba', 'abbbba'
un tikai tās.
Dota virkne:
txt = 'aa aba abba abbba abbbba abbbbba'
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
veida 'aba', kurās 'b'
sastopams mazāk nekā 3 reizes (ieskaitot).
Dota virkne:
txt = 'aa aba abba abbba abbbba abbbbba'
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
veida 'aba', kurās 'b'
sastopams vairāk nekā 4 reizes (ieskaitot).