Python regular ifadelerinde 'ýa-da' komandasy

'|' komandasy, [ ] komandasy bilen deňeşdirilende has güýçli 'ýa-da' wariantyny öz içine alýar. Bu komanda regulýar ifäni birnäçe bölege bölmäge mümkinçilik berýär. Şeýlelikde, gözlenilýän zat ýa bir regulýar bölege, ýa-da beýlekisine gabat gelýär. Mysallar bilen göreliň.

Mysal

Bu mysalda gözleg şablony şeýle: üç sany 'a' harpy ýa-da üç sany 'b' harpy:

pythontxt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)

print(res)

Kodyň çykış netijesi:

python'! ! abb'

Mysal

Bu mysalda gözleg şablony şeýle: üç sany 'a' harpy ýa-da 1 we ondan köp 'b' harpy:

pythontxt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)

print(res)

Kodyň çykış netijesi:

python'! ! ! ! axx'

Mysal

Bu mysalda gözleg şablony şeýle: bir ýa-da birnäçe harpa ýa-da üç san:

pythontxt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)

print(res)

Kodyň çykış netijesi:

python'! ! ! 1 12 !'

Mysal

Şekilli çyzyk regulýar ifäni diňe iki bölege däl, eýsem islendik sany bölege bölüp bilýär:

pythontxt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)

print(res)

Kodyň çykış netijesi:

python'! ! ! ddd'

Mysal

Eger şekilli çyzyk aýlawly ýaýlaryň içinde bolsa, 'ýa-da' diňe şol ýaýlaryň içinde işleýär.

Mysal üçin, aşakdaky şablona laýyk setirleri tapalyň: başynda ýa-da 'a', ýa-da 'b' bir ýa-da birnäçe gezek durýar, soň bolsa iki sany 'x' harpy:

pythontxt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)

print(res)

Kodyň çykış netijesi:

python'! ! ! exx'

Amaly meseleler

Задание 1

Setir berlen:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Regulýar ýazyň, şu şablona laýyk setirleri tapan: gapdalda 'a' harpylary durýar, olaryň arasynda bolsa - ýa-da 'e' harpy islendik gezek ýa-da 'x' harpy islendik gezek.

Задание 2

Setir berlen:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Regulýar ýazyň, şu şablona laýyk setirleri tapan: gapdalda 'a' harpylary durýar, olaryň arasynda bolsa - ýa-da 'e' harpy iki gezek ýa-da 'x' harpy islendik gezek.