⊗pyPmREHHy 47 of 129 menu

Pomlčka uvnitř množin v regulárních výrazech Pythonu

Pomlčka - je také speciální znak uvnitř [ ] (ale venku - ne). Pokud potřebujete samotnou pomlčku jako znak - umístěte ji tam, kde nebude pochopená jako oddělovač skupiny.

Proč je to důležité: můžete vytvořit skupinu znaků, aniž byste si toho všimli. Například, takto - '[:-@]' - si myslíte, že vybíráte dvojtečku, pomlčku a zavináč, ale ve skutečnosti vznikne skupina znaků mezi : a @. Do této skupiny patří následující znaky: ? < = > :

Odkud se vzaly? Z tabulky ASCII - dvojtečka má menší číslo než zavináč - a vznikne skupina. To znamená, že všechny skupiny jsou vytvořeny podle tabulky ASCII (pokud chcete, můžete toho využívat).

Jak s tím bojovat: umístěte znak pomlčky tam, kde rozhodně nebude pochopen jako znak skupiny, například na začátku nebo na konci (tedy za [ nebo před ]).

Pomlčku lze také escapovat - pak bude označovat sama sebe bez ohledu na pozici. Například místo [:-@] napsat [:\-@] - a skupina již nebude, ale budou tři znaky - dvojtečka, pomlčka a zavináč @.

Příklad

V následujícím příkladu je vzor hledání tento: číslice 1, poté písmeno od 'a' do 'z', poté číslice 2:

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

Výsledek provedení kódu:

'! 1-2 ! !'

Příklad

Nyní pojďme escapovat pomlčku. Ve výsledku je vzor hledání tento: číslice 1, poté písmeno 'a', nebo pomlčka, nebo písmeno 'z', poté číslice 2:

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

Výsledek provedení kódu:

'! ! 1c2 !'

Příklad

Lze jednoduše přemístit pomlčku, aniž byste ji escapovali:

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

Výsledek provedení kódu:

'! ! 1c2 !'

Příklad

V následujícím příkladu je vzor hledání tento: první znak - to jsou malá písmena nebo pomlčka '-', pak dvě písmena 'x':

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

Výsledek provedení kódu:

'! Axx ! @xx'

Příklad

V následujícím příkladu je vzor hledání tento: první znak - to jsou malá, velká písmena nebo pomlčka '-', pak dvě písmena 'x':

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

Výsledek provedení kódu:

'! ! ! @xx'

Příklad

Pomlčku lze umístit mezi dvě skupiny - tam rozhodně ještě nevytvoří další skupinu:

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

Výsledek provedení kódu:

'! ! ! @xx'

Praktické úlohy

Je dán řetězec:

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

Najděte všechny řetězce podle následujícího vzoru: písmeno 'x', velké nebo malé písmeno nebo pomlčka, písmeno 'z'.

Je dán řetězec:

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

Najděte všechny řetězce podle následujícího vzoru: písmeno 'x', poté nebo dolar, nebo pomlčka nebo plus, pak písmeno 'z'.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout