⊗pyPmREMl 50 of 129 menu

Víceřádkovost v regulárních výrazech Pythonu

Regulární výrazy při práci s víceřádkovými řetězci mají své zvláštnosti. Pojďme se s nimi seznámit na příkladu následujícího řetězce, obsahujícího běžné znaky, znaky nového řádku a tabulátory:

txt = '''111 222 333 444'''

Nový řádek

Znaky nového řádku lze zachytit pomocí příkazu '\n':

res = re.sub('\n', '!', txt) print(res)

Výsledkem bude následující řetězec (mezery mezi řádky jsou tabulátory):

'111! 222! 333! 444'

Tabulátor

Znaky tabulátoru lze zachytit pomocí příkazu '\t':

res = re.sub('\t', '!', txt) print(res)

Výsledek provedení kódu:

''' !111 !222 !333 !444 '''

Funkce tečky

Příkaz '.' pro víceřádkový řetězec nezachytává znaky nového řádku:

res = re.sub('.', '!', txt) print(res)

Výsledek provedení kódu:

''' !!! !!!! !!!! !!!! '''

Libovolný znak

Pro zachycení všech znaků ve víceřádkovém řetězci se používá chytrý trik ve formě kombinace [\s\S]. Tato konstrukce najde všechny běžné znaky i všechny znaky nového řádku:

res = re.sub('[\s\S]', '!', txt) print(res)

Výsledek provedení kódu:

'!!!!!!!!!!!!!!!!!!'

Dolar

Příkaz ' v víceřádkovém režimu bude zachytávat konec každého řádku:

res = re.sub(' , '!', txt) print(res)

Výsledek provedení kódu:

''' 111! 222! 333! 444! '''

Praktické úlohy

Daný řetězec:

''' abc def ghi jkl '''

Napište regulární výraz, který z tohoto řetězce vytvoří následující:

''' abc! def! ghi! jkl! '''

Daný řetězec:

''' abc def ghi jkl '''

Napište regulární výraz, který z tohoto řetězce vytvoří následující:

''' ! abc ! def ! ghi ! jkl '''

Daný řetězec:

''' abc def ghi jkl '''

Napište regulární výraz, který z tohoto řetězce vytvoří následující:

'''! abc def ghi jkl !'''

Daný řetězec:

''' abc def ghi jkl '''

Napište regulární výraz, který z tohoto řetězce vytvoří následující:

'''! ! abc ! def ! ghi ! jkl !'''

Daný řetězec:

''' abc def ghi jkl '''

Napište regulární výraz, který z tohoto řetězce vytvoří následující:

'''! abc! def! ghi! jkl! !'''

Daný řetězec:

''' abc def ghi jkl '''

Napište regulární výraz, který z tohoto řetězce vytvoří následující:

''' !abc !def !ghi !jkl '''
Č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