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' әрпі
кез келген санда.