A 'vagy' parancs a Python reguláris kifejezéseiben

A '|' parancs, amely a [ ] parancsnál hatékonyabb 'vagy' változatet képvisel. Ez a parancs lehetővé teszi a regex több részre osztását. Ebben az esetben a keresett kifejezés vagy a regex egyik részének, vagy a másiknak felel meg. Nézzük példákon.

Példa

Ebben a példában a keresési minta a következő: három 'a' betű vagy három 'b' betű:

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

print(res)

A kód végrehajtásának eredménye:

python'! ! abb'

Példa

Ebben a példában a keresési minta a következő: három 'a' betű vagy 1 és több 'b' betű:

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

print(res)

A kód végrehajtásának eredménye:

python'! ! ! ! axx'

Példa

Ebben a példában a keresési minta a következő: egy vagy több betű vagy három számjegy:

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

print(res)

A kód végrehajtásának eredménye:

python'! ! ! 1 12 !'

Példa

A függőleges vonal nem csak két részre, hanem tetszőleges számú részre oszthatja a regexet:

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

print(res)

A kód végrehajtásának eredménye:

python'! ! ! ddd'

Példa

Ha a függőleges vonal kerek zárójelek között van, akkor a 'vagy' csak ezen zárójelek belsejében működik.

Példaként keressük meg a következő minta alapján a sorokat: az elején vagy 'a', vagy 'b' áll egy vagy több alkalommal, majd két 'x' betű:

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

print(res)

A kód végrehajtásának eredménye:

python'! ! ! exx'

Gyakorlati feladatok

Задание 1

Adott egy sztring:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Írjon egy reguláris kifejezést, amely megtalálja a sztringeket a következő minta szerint: a széleken 'a' betűk állnak, közöttük - vagy 'e' betű bármennyi alkalommal, vagy 'x' betű bármennyi alkalommal.

Задание 2

Adott egy sztring:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Írjon egy reguláris kifejezést, amely megtalálja a sztringeket a következő minta szerint: a széleken 'a' betűk állnak, közöttük - vagy 'e' betű két alkalommal, vagy 'x' betű bármennyi alkalommal.