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':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)

print(res)

Koodi täitmise tulemus:

python'xx ! ! xaaax'

Näide

Selles näites on otsimismustrijärgnev: täht 'x', täht 'a' kaks korda või rohkem, täht 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)

print(res)

Koodi täitmise tulemus:

python'xx xax ! !'

Näide

Selles näites on otsimismustrijärgnev: täht 'x', täht 'a' kolm korda, täht 'x':

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)

print(res)

Koodi täitmise tulemus:

python'xx xax xaax !'

Näide

Selles näites on otsimismustrijärgnev: täht 'a' kümme korda:

pythontxt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)

print(res)

Koodi täitmise tulemus:

python'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:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)

print(res)

Koodi täitmise tulemus:

python'! ! ! !'

Näide

Null enne 3 on samuti lubatud:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)

print(res)

Koodi täitmise tulemus:

python'! ! ! !'

Praktilised ülesanded

Задание 1

Antud on sõne:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Kirjutage regulaaravaldis, mis leiab sõned 'abba', 'abbba', 'abbbba' ja ainult need.

Задание 2

Antud on sõne:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Kirjutage regulaaravaldis, mis leiab sõned kujul 'aba', milles 'b' esineb vähem kui 3 korda (kaasa arvatud).

Задание 3

Antud on sõne:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Kirjutage regulaaravaldis, mis leiab sõned kujul 'aba', milles 'b' esineb rohkem kui 4 korda (kaasa arvatud).