⊗pyPmREChS 40 of 129 menu

Množiny znakov v regulárnych výrazoch Python

Skupiny znakov \d a \w nie sú veľmi flexibilné. Dokonca aj taká jednoduchá úloha, ako nájsť všetky písmená, ale nie číslice - nemôže byť vyriešená nimi. Pre takéto úlohy by sa mali použiť hranaté zátvorky, ktoré predstavujú operáciu 'alebo'.

Hranaté zátvorky nahrádzajú jeden znak, ktorý môže byť ľubovoľný z uvedených vnútri. Napríklad, takto: x[abc]x - hovoríme, že na okrajoch musia stáť písmená x, a vnútri - jeden znak: buď 'a', alebo 'b', alebo 'c'.

Za hranatými zátvorkami je možné písať operátory opakovania. Napríklad, takto: x[abc]+x - hovoríme, že vnútri x môže byť ľubovoľný počet znakov 'a', 'b' a 'c' - v ľubovoľných kombináciách.

Je možné nielen vymenovávať znaky, ale aj vytvárať skupiny znakov zápisom medzi dvoma znakmi pomlčku. Napríklad, takto: [a-d] - získame všetky znaky od 'a' do 'd'.

Pozrime sa na príklady.

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľné písmeno od 'a' do 'z':

<+Python+> txt = 'xax xbx xcx x@x' res = re.sub('x[a-z]x', '!', txt) print(res) <-python->

Výsledok vykonania kódu:

'! ! ! x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľné písmeno od 'a' do 'k':

txt = 'xax xbx xmx x@x' res = re.sub('x[a-k]x', '!', txt) print(res)

Výsledok vykonania kódu:

'! ! xmx x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľné písmeno od 'A' do 'Z':

txt = 'xax xBx xcx x@x' res = re.sub('x[A-Z]x', '!', txt) print(res)

Výsledok vykonania kódu:

'xax ! xcx x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľná číslica od 0 do 9:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[0-9]x', '!', txt) print(res)

Výsledok vykonania kódu:

'xax ! ! ! x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľná číslica od 3 do 7:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[3-7]x', '!', txt) print(res)

Výsledok vykonania kódu:

'xax x1x ! ! x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľné písmeno od 'a' do 'z' alebo číslica od 1 do 9:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[a-z1-9]x', '!', txt) print(res)

Výsledok vykonania kódu:

'! ! ! ! x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľné písmeno od 'a' do 'z' alebo písmeno od 'A' do 'Z':

txt = 'xax xBx xcx x5x x@x' res = re.sub('x[a-zA-Z]x', '!', txt) print(res)

Výsledok vykonania kódu:

'! ! ! x5x x@x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x ľubovoľné písmeno od 'a' do 'z' alebo číslice 1, 2:

txt = 'xax xbx x1x x2x x3x' res = re.sub('x[a-z12]x', '!', txt) print(res)

Výsledok vykonania kódu:

'! ! ! ! x3x'

Príklad

V tomto príklade vyhľadávací vzor vyzerá takto: medzi x písmená od 'a' do 'z' v množstve od 1 a viac:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]+x', '!', txt) print(res)

Výsledok vykonania kódu:

'xx ! ! ! x123x xa3x'

Príklad

Urobme to tak, aby počet písmen mohol byť aj nula:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]*x', '!', txt) print(res)

Výsledkom bude:

'! ! ! ! x123x xa3x'

Príklad

Vnútri hranatých zátvoriek je možné uvádzať aj escapované znaky. Nájdime postupnosť písmen a číslic, opakujúcu sa nula alebo viackrát:

txt = 'xx x@x xadx xas12x xa3x' res = re.sub('x[a-z\d]*x', '!', txt) print(res)

Výsledok vykonania kódu:

'! x@x ! ! !'

Príklad

Ak potrebujeme uviesť ďalšie hranaté zátvorky, tak ich tiež musíme escapovať:

txt = 'xx xrx xas[]x x3x' res = re.sub('x[a-z\[\]]*x', '!', txt) print(res)

Výsledok vykonania kódu:

'! ! ! x3x'

Praktické úlohy

Daný reťazec:

txt = 'aba aea aca aza axa'

Napíšte regulárny výraz, ktorý nájde podľa nasledovného vzoru: na okrajoch stoja písmená 'a', a medzi nimi - písmeno 'b', 'e' alebo 'x'.

Daný reťazec:

txt = 'a1a a3a a7a a9a aba'

Napíšte regulárny výraz, ktorý nájde podľa nasledovného vzoru: na okrajoch stoja písmená 'a', a medzi nimi - číslica od 3 do 6.

Daný reťazec:

txt = 'aba aea afa aha aga'

Napíšte regulárny výraz, ktorý nájde podľa nasledovného vzoru: na okrajoch stoja písmená 'a', a medzi nimi - písmeno od 'a' do 'g'.

Daný reťazec:

txt = 'aba aea afa aha aga'

Napíšte regulárny výraz, ktorý nájde podľa nasledovného vzoru: na okrajoch stoja písmená 'a', a medzi nimi - písmeno od 'a' do 'f' a od 'j' do 'z'.

Daný reťazec:

txt = 'aAa aea aEa aJa a3a'

Napíšte regulárny výraz, ktorý nájde podľa nasledovného vzoru: na okrajoch stoja písmená 'a', a medzi nimi - písmeno od 'a' do 'f' a od 'A' do 'D'.

Daný reťazec:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Napíšte regulárny výraz, ktorý nájde podľa nasledovného vzoru: na okrajoch stoja písmená 'a', a medzi nimi - malé latinské písmená, bez ovplyvnenia ostatných.

Daný reťazec:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Napíšte regulárny výraz, ktorý nájde podľa nasledovného vzoru: na okrajoch stoja písmená 'a', a medzi nimi - malé a veľké latinské písmená, bez ovplyvnenia ostatných.

Daný reťazec:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Napíšte regulárny výraz, ktorý nájde podľa nasledovného vzoru: na okrajoch stoja písmená 'a', a medzi nimi - malé latinské písmená a číslice, bez ovplyvnenia ostatných.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť