Krulhakies in regulêre uitdrukkings van Python
Die operateurs '+', '*', '?'
is goed, maar dit is nie moontlik om daarmee
'n spesifieke aantal herhalings aan te dui nie. In hierdie geval
kom die operateur {} jou te hulp.
Dit werk soos volg: {5}
- vyf herhalings, {2,5} – herhaal
twee tot vyf keer (albei ingesluit), {2,}
- herhaal twee keer of meer. Kyk na die
voorbeelde:
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon
soos volg: letter 'x', letter 'a'
een of twee keer, letter 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Resultaat van die kode-uitvoering:
'xx ! ! xaaax'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon
soos volg: letter 'x', letter 'a'
twee keer of meer, letter 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Resultaat van die kode-uitvoering:
'xx xax ! !'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon
soos volg: letter 'x', letter 'a'
drie keer, letter 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Resultaat van die kode-uitvoering:
'xx xax xaax !'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon
soos volg: letter 'a' tien keer:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Resultaat van die kode-uitvoering:
'aaa ! aaa'
Voorbeeld
In hierdie voorbeeld is daar so 'n patroon: letter
'x', letter 'a' drie keer of minder,
letter 'x'. Om dit
te implementeer, kan jy voor die syfer 3
geen getal aandui nie, maar net 'n
komma plaas:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Resultaat van die kode-uitvoering:
'! ! ! !'
Voorbeeld
Nul voor 3 is ook toelaatbaar:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Resultaat van die kode-uitvoering:
'! ! ! !'
Praktiese take
Gegewe 'n string:
txt = 'aa aba abba abbba abbbba abbbbba'
Skryf 'n regulêre uitdrukking wat die strings
'abba', 'abbba', 'abbbba'
en net hulle sal vind.
Gegewe 'n string:
txt = 'aa aba abba abbba abbbba abbbbba'
Skryf 'n regulêre uitdrukking wat strings
van die vorm 'aba' sal vind, waarin 'b'
minder as 3 keer (ingesluit) voorkom.
Gegewe 'n string:
txt = 'aa aba abba abbba abbbba abbbbba'
Skryf 'n regulêre uitdrukking wat strings
van die vorm 'aba' sal vind, waarin 'b'
meer as 4 keer (ingesluit) voorkom.