⊗pyPmREChG 39 of 129 menu

Skupiny znaků v regulárních výrazech Python

Existují speciální příkazy, které umožňují vybrat najednou celé skupiny znaků. Příkaz \d znamená číslici od 0 do 9. Příkaz \w označuje číslici, latinské písmeno nebo znak podtržítka. Příkaz \s označuje mezeru nebo bílý znak: mezeru, nový řádek, tabulátor. Hodnotu příkazu lze invertovat zapsáním velkého písmene: například, pokud \d - číslice, pak \D - ne číslice.

Příklad

Pojďme najít všechny číslice:

txt = '1 12 123' res = re.sub('\d', '!', txt) print(res)

Výsledek provedení kódu:

'! !! !!!'

Příklad

Operátory opakování považují příkazy-skupiny za jeden celek, to znamená, že seskupující závorky nejsou potřeba. V dalším příkladu vypadá vyhledávací vzor takto: číslice od 0 do 9 jeden nebo více krát:

txt = '1 12 123 abc @@@' res = re.sub('\d+', '!', txt) print(res)

Výsledek provedení kódu:

'! ! ! abc @@@'

Příklad

V dalším příkladu vypadá vyhledávací vzor takto: cokoliv jeden nebo více krát, ale ne číslice od 0 do 9:

txt = '123abc3@@' res = re.sub('\D+', '!', txt) print(res)

Výsledek provedení kódu:

'123!3!'

Příklad

V tomto příkladu vypadá vyhledávací vzor takto: bílý znak jedenkrát:

txt = '1 12 123 abc @@@' res = re.sub('\s', '!', txt) print(res)

Výsledek provedení kódu:

'1!12!123!abc!@@@'

Příklad

V tomto příkladu vypadá vyhledávací vzor takto: NE bílý znak jeden nebo více krát. Všechny podřetězce, oddělené mezerami, budou nahrazeny na '!':

txt = '1 12 123 abc @@@' res = re.sub('\S+', '!', txt) print(res)

Výsledek provedení kódu:

'! ! ! ! !'

Příklad

V tomto příkladu vypadá vyhledávací vzor takto: číslice nebo písmeno jeden nebo více krát. Všechny podřetězce, skládající se z číslic a písmen, budou nahrazeny na '!':

txt = '1 12 123a Abc @@@' res = re.sub('\w+', '!', txt) print(res)

Výsledek provedení kódu:

'! ! ! ! @@@'

Příklad

V tomto příkladu vypadá vyhledávací vzor takto: NE číslice a NE písmeno jeden nebo více krát. Pod tuto definici v našem případě spadá '@@@' a všechny mezery (ty přece také nejsou číslice ani písmena). Všimněte si, že na konci je jedna '!' - do ní se přeměnil řetězec ' @@@' - s mezerou vpředu:

txt = '1 12 123 Abc @@@' res = re.sub('\W+', '!', txt) print(res)

Výsledek provedení kódu:

'1!12!123!Abc!'

Praktické úlohy

Daný řetězec:

txt = 'a1a a2a a3a a4a a5a aba aca'

Napište regulární výraz, který najde řetězce, ve kterých po okrajích stojí písmena 'a', a mezi nimi jedna číslice.

Daný řetězec:

txt = 'a1a a22a a333a a4444a a55555a aba aca'

Napište regulární výraz, který najde řetězce, ve kterých po okrajích stojí písmena 'a', a mezi nimi libovolný počet číslic.

Daný řetězec:

txt = 'aa a1a a22a a333a a4444a a55555a aba aca'

Napište regulární výraz, který najde řetězce, ve kterých po okrajích stojí písmena 'a', a mezi nimi libovolný počet číslic (včetně nuly číslic, tedy řetězec 'aa').

Daný řetězec:

txt = 'avb a1b a2b a3b a4b a5b abb acb'

Napište regulární výraz, který najde řetězce následujícího druhu: po okrajích stojí písmena 'a' a 'b', a mezi nimi - ne číslo a ne mezera.

Daný řetězec:

txt = 'ave a#b a2b a$b a4b a5b a-b acb'

Napište regulární výraz, který najde řetězce následujícího druhu: po okrajích stojí písmena 'a' a 'b', a mezi nimi - ne písmeno, ne číslice a ne mezera.

Daný řetězec:

txt = 'ave a#a a2a a$a a4a a5a a-a aca'

Napište regulární výraz, který nahradí všechny mezery na '!'.

Č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