Командата 'или' во регуларните изрази на Python
Командата '|', која претставува
по́моќна верзија на 'или'
во споредба со командата [ ]. Оваа команда
овозможува регуларниот израз да се подели на неколку
делови. При тоа, бараниот текст може да одговара
или на едниот дел од регуларниот израз, или на
другиот. Ајде да погледнеме на примери.
Пример
Во овој пример, шаблонот за пребарување е:
три букви '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'
кој било број пати.