Lokkis sulud Pythoni regulaaravaldistes
Operaatorid '+', '*', '?'
on head, kuid nendega ei saa täpsustada
konkreetset korduste arvu. Sel juhul
tuleb appi operaator {}.
See töötab järgmiselt: {5}
- viis kordust, {2,5} – kordub
kahest viieni (mõlemad kaasa arvatud), {2,}
- kordub kaks korda või rohkem. Vaadake
näiteid:
Näide
Selles näites on otsimismustrijärgnev:
täht 'x', täht 'a'
üks või kaks korda, täht 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Koodi täitmise tulemus:
'xx ! ! xaaax'
Näide
Selles näites on otsimismustrijärgnev:
täht 'x', täht 'a'
kaks korda või rohkem, täht 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Koodi täitmise tulemus:
'xx xax ! !'
Näide
Selles näites on otsimismustrijärgnev:
täht 'x', täht 'a'
kolm korda, täht 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Koodi täitmise tulemus:
'xx xax xaax !'
Näide
Selles näites on otsimismustrijärgnev:
täht 'a' kümme korda:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Koodi täitmise tulemus:
'aaa ! aaa'
Näide
Selles näites on selline muster: täht
'x', täht 'a' kolm korda või vähem,
täht 'x'. Selle rakendamiseks
enne numbrit 3
ei pea numbrit määrama, vaid võib panna
lihtsalt koma:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Koodi täitmise tulemus:
'! ! ! !'
Näide
Null enne 3 on samuti lubatud:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Koodi täitmise tulemus:
'! ! ! !'
Praktilised ülesanded
Antud on sõne:
txt = 'aa aba abba abbba abbbba abbbbba'
Kirjutage regulaaravaldis, mis leiab sõned
'abba', 'abbba', 'abbbba'
ja ainult need.
Antud on sõne:
txt = 'aa aba abba abbba abbbba abbbbba'
Kirjutage regulaaravaldis, mis leiab sõned
kujul 'aba', milles 'b'
esineb vähem kui 3 korda (kaasa arvatud).
Antud on sõne:
txt = 'aa aba abba abbba abbbba abbbbba'
Kirjutage regulaaravaldis, mis leiab sõned
kujul 'aba', milles 'b'
esineb rohkem kui 4 korda (kaasa arvatud).