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' тамгасы каалаганча жолу.