Витичасте заграде у регуларним изразима Пајтона
Оператори '+', '*', '?'
су добри, међутим, њима се не може одредити
конкретан број понављања. У овом случају
ће вам помоћи оператор {}.
Ради на следећи начин: {5}
- пет понављања, {2,5} – понавља се
од два до пет (оба укључујући), {2,}
- понавља се два и више пута. Погледајте
примере:
Пример
У овом примеру шаблон претраге изгледа
овако: слово 'x', слово 'a'
један или два пута, слово 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Резултат извршавања кода:
'xx ! ! xaaax'
Пример
У овом примеру шаблон претраге изгледа
овако: слово 'x', слово 'a'
два пута и више, слово 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Резултат извршавања кода:
'xx xax ! !'
Пример
У овом примеру шаблон претраге изгледа
овако: слово 'x', слово 'a'
три пута, слово 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Резултат извршавања кода:
'xx xax xaax !'
Пример
У овом примеру шаблон претраге изгледа
овако: слово 'a' десет пута:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Резултат извршавања кода:
'aaa ! aaa'
Пример
У овом примеру постоји следећи шаблон: слово
'x', слово 'a' три пута и мање,
слово 'x'. Да би се то реализовало,
испред цифре 3
се не мора навести број, већ се може ставити
само зарез:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Резултат извршавања кода:
'! ! ! !'
Пример
Нула испред 3 такође је дозвољена:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Резултат извршавања кода:
'! ! ! !'
Практични задаци
Дат је стринг:
txt = 'aa aba abba abbba abbbba abbbbba'
Напишите регуларни израз који ће пронаћи стрингове
'abba', 'abbba', 'abbbba'
и само њих.
Дат је стринг:
txt = 'aa aba abba abbba abbbba abbbbba'
Напишите регуларни израз који ће пронаћи стрингове
вида 'aba', у којима се 'b'
јавља мање од 3 пута (укључујући).
Дат је стринг:
txt = 'aa aba abba abbba abbbba abbbbba'
Напишите регуларни израз који ће пронаћи стрингове
вида 'aba', у којима се 'b'
јавља више од 4 пута (укључујући).