⊗pyPmREMSP 58 of 129 menu

Kapsy v řetězci nahrazení v Pythonu

Při práci s metodou sub, pokud chcete něco uložit do kapsy v regulárním výrazu, můžete do řetězce nahrazení vložit obsah této kapsy napsáním dvojitého lomítka \ a čísla kapsy. Například, \1 - první kapsa, \2 - druhá kapsa a tak dále.

K čemu to je a jak se to používá, se podívejme na příkladech.

Příklad

Najděme všechna čísla a místo nich vložme tato stejná čísla, ale v kulatých závorkách. K tomu všechna nalezená čísla nahradíme jimi samými, ale v závorkách:

txt = '1 23 456 xax' res = re.sub('(\d+)', '(\1)', txt) print(res)

Výsledkem bude, že se do proměnné zapíše následující:

'(1) (23) (456) xax'

Příklad

Najděme všechny řetězce představující čísla s 'x' kolem a nahraďme tato čísla jimi samými, ale s '!' znaménky kolem:

txt = 'x1x x23x x456x xax' res = re.sub('x(\d+)x', '!\1!', txt) print(res)

Výsledkem bude, že se do proměnné zapíše následující:

'!1! !23! !456! xax'

Příklad

Pojďme vyřešit následující úlohu: je dán řetězec 'aaa@bbb ccc@ddd' - písmena, pak zavináč, pak písmena. Je třeba prohodit místa písmen v podřetězci 'aaa@bbb' před '@' a po:

txt = 'aaa@bbb ccc@ddd' res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt) print(res)

Výsledkem bude, že se do proměnné zapíše následující:

'bbb@aaa ccc@ddd'

Praktické úlohy

Je dán řetězec:

txt = '12 34 56 78'

Prohoďte číslice ve všech dvouciferných číslech.

Je dán řetězec s datem:

txt = '31.12.2025'

Převeďte toto datum na '2025.12.31'.

Č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