Команда 'или' у регуларним изразима Пајтона
Команда '|', која представља
снажнију варијанту 'или'
у поређењу са командом [ ]. Ова команда
омогућава да се регуларни израз подели на неколико
делова. При томе тражени део може да одговара
или једном делу регуларног израза, или
другом. Погледајмо на примерима.
Пример
У овом примеру шаблон за претрагу је:
три слова 'a' или три слова
'b':
txt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)
print(res)
Резултат извршавања кода:
'! ! abb'
Пример
У овом примеру шаблон за претрагу је:
три слова 'a' или од 1 и
више слова 'b':
txt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)
print(res)
Резултат извршавања кода:
'! ! ! ! axx'
Пример
У овом примеру шаблон за претрагу је: једно или више слова или три цифре:
txt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)
print(res)
Резултат извршавања кода:
'! ! ! 1 12 !'
Пример
Вертикална црта може да подели регуларни израз не на два дела, већ на било који број делова:
txt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)
print(res)
Резултат извршавања кода:
'! ! ! ddd'
Пример
Ако се вертикална црта налази унутар заобљених
заграда, онда 'или' ради само
унутар тих заграда.
За пример да пронађемо низове по
следећем шаблону: на почетку стоји или
'a', или 'b' једном или више
пута, а затим два слова 'x':
txt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)
print(res)
Резултат извршавања кода:
'! ! ! exx'
Практични задаци
Дат је низ:
txt = 'aeeea aeea aea axa axxa axxxa'
Напишите регуларни израз који ће пронаћи низове
према шаблону: на ивицама стоје слова
'a', а између њих - или слово
'e' било који број пута или слово
'x' било који број пута.
Дат је низ:
txt = 'aeeea aeea aea axa axxa axxxa'
Напишите регуларни израз који ће пронаћи низове
према шаблону: на ивицама стоје слова
'a', а између њих - или слово
'e' два пута или слово 'x'
било који број пута.