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ű:
txt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)
print(res)
A kód végrehajtásának eredménye:
'! ! 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ű:
txt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)
print(res)
A kód végrehajtásának eredménye:
'! ! ! ! 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:
txt = '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:
'! ! ! 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:
txt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)
print(res)
A kód végrehajtásának eredménye:
'! ! ! 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ű:
txt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)
print(res)
A kód végrehajtásának eredménye:
'! ! ! exx'
Gyakorlati feladatok
Adott egy sztring:
txt = '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.
Adott egy sztring:
txt = '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.