⊗pyPmREHHy 47 of 129 menu

Spojovník vnútri množín v regulárnych výrazoch Python

Spojovník je tiež špeciálny znak vnútri [ ] (no vonku - nie). Ak potrebujete samotný spojovník ako symbol - umiestnite ho tam, kde nebude pochopený ako oddeľovač skupiny.

Prečo je to dôležité: môžete vytvoriť skupinu znakov, ani o tom nevediac. Napríklad, takto - '[:-@]' - myslíte si, že vyberáte dvojbodku, spojovník a zavináč, no v skutočnosti vznikne skupina znakov medzi : a @. Do tejto skupiny patria nasledujúce znaky: ? < = > :

Odkiaľ sa vzali? Z tabuľky ASCII - dvojbodka má menšie číslo ako zavináč - a vznikne tak skupina. To znamená, že všetky skupiny vznikajú podľa tabuľky ASCII (ak chcete, môžete to využiť).

Ako s tým bojovať: umiestnite symbol spojovníka tam, kde určite nebude pochopený ako symbol skupiny, napríklad na začiatku alebo na konci (teda za [ alebo pred ]).

Spojovník môžete tiež escapovať - potom bude označovať sám seba bez ohľadu na pozíciu. Napríklad, namiesto [:-@] napísať [:\-@] - a skupina už nevznikne, budú tam tri znaky - dvojbodka, spojovník a zavináč @.

Príklad

V nasledujúcom príklade je vyhľadávací vzor taký: číslica 1, potom písmeno od 'a' do 'z', potom číslica 2:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a-z]2', '!', txt) print(res)

Výsledok vykonania kódu:

'! 1-2 ! !'

Príklad

Poďme teraz escapovať spojovník. Výsledkom je vyhľadávací vzor taký: číslica 1, potom písmeno 'a', alebo spojovník, alebo písmeno 'z', potom číslica 2:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[a\-z]2', '!', txt) print(res)

Výsledok vykonania kódu:

'! ! 1c2 !'

Príklad

Môžete jednoducho presunúť spojovník, bez escapovania ho:

txt = '1a2 1-2 1c2 1z2' res = re.sub('1[az-]2', '!', txt) print(res)

Výsledok vykonania kódu:

'! ! 1c2 !'

Príklad

V nasledujúcom príklade je vyhľadávací vzor taký: prvý znak - to sú malé písmená alebo spojovník '-', potom dve písmená 'x':

txt = 'axx Axx -xx @xx' res = re.sub('[a-z-]xx', '!', txt) print(res)

Výsledok vykonania kódu:

'! Axx ! @xx'

Príklad

V nasledujúcom príklade je vyhľadávací vzor taký: prvý znak - to sú malé, veľké písmená alebo spojovník '-', potom dve písmená 'x':

txt = 'axx Axx -xx @xx' res = re.sub('[a-zA-Z-]xx', '!', txt) print(res)

Výsledok vykonania kódu:

'! ! ! @xx'

Príklad

Môžete umiestniť spojovník medzi dve skupiny - tam určite ešte nevytvorí ďalšiu skupinu:

txt = 'axx 9xx -xx @xx' res = re.sub('[a-z-0-9]xx', '!', txt) print(res)

Výsledok vykonania kódu:

'! ! ! @xx'

Praktické úlohy

Daný reťazec:

txt = 'xaz xBz xcz x-z x@z'

Nájdite všetky reťazce podľa nasledujúceho vzoru: písmeno 'x', veľké alebo malé písmeno alebo spojovník, písmeno 'z'.

Daný reťazec:

txt = 'xaz x$z x-z xcz x+z x%z x*z'

Nájdite všetky reťazce podľa nasledujúceho vzoru: písmeno 'x', potom alebo dolár, alebo spojovník alebo plus, potom písmeno 'z'.

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ť