⊗pyPmRESF 73 of 129 menu

Príznaky pre reťazce regulárnych výrazov v Pythone

Ak chcete nastaviť príznaky ako jeden z voliteľných parametrov pre metódy pracujúce s regulárnymi výrazmi, použite nasledujúcu syntax:

flags=re.názov príznaku

Základné príznaky pre prácu s regulárnymi výrazmi

Príznak Účel
re.IGNORECASE Ignorovanie veľkosti písmen.
re.DOTALL Bodka označuje ľubovoľný znak, vrátane konca riadka.
re.I Vyhľadávanie necitlivé na veľkosť písmen.
re.L Hľadá slová podľa aktuálneho jazyka. Táto interpretácia ovplyvňuje abecednú skupinu (\w a \W), ako aj správanie hranice slova (\b a \B).
re.M Znak $ vykoná vyhľadávanie na konci ľubovoľného riadku textu (nielen na konci textu) a znak ^ vykoná vyhľadávanie na začiatku ľubovoľného riadku textu (nielen na začiatku textu).
re.S Zmení význam bodky (.) na zhodu s ľubovoľným znakom, vrátane nového riadka.
re.U Interpretuje písmená podľa sady znakov Unicode. Tento príznak ovplyvňuje správanie \w, \W, \b, \B. V Pythone 3+ je tento príznak nastavený predvolene.
re.X Umožňuje viacriadkovú syntax regulárneho výrazu. Ignoruje medzery vo vnútri vzoru (okrem medzier vo vnútri množiny [] alebo pri úniku spätným lomítkom) a spracúva ne únikovú '#' ako komentár.

Príklad

Pomocou príznaku re.IGNORECASE môžete ignorovať veľkosť písmen. Pozrime sa, ako sa to robí. V tomto príklade regulárny výraz nájde len malé písmená:

txt = 'aaa bbb CCC DDD' res = re.sub('[a-z]+', '!', txt) print(res)

Výsledok vykonania kódu:

'! ! CCC DDD'

Príklad

A teraz pridajme do štvrtého parametra metódy príznak re.IGNORECASE a regulárny výraz začne hľadať znaky vo všetkých veľkostiach písmen:

txt = 'aaa AAA bbb BBB' res = re.sub('[a-z]+', '!', txt, flags=re.IGNORECASE) print(res)

Výsledok vykonania kódu:

'! ! ! !'

Príklad

Nájdime regulárnym výrazom všetky konce riadkov:

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

Výsledok vykonaného kódu:

'aaa!bbb'

Príklad

Ale ak potrebujete nahradiť úplne všetky znaky, tak použitím bodky v regulárnom výraze nezachytíte konce riadkov:

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

Výsledok vykonaného kódu:

'!!! !!!'

Príklad

Na opravu tejto chyby by ste mali použiť príznak re.DOTALL:

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

Výsledok vykonaného kódu:

'!!!!!!!'

Príklad

Do parametra je možné preniesť aj niekoľko príznakov, umiestnením operátora + medzi ne. Najprv nahraďme písmeno 'a' na konci riadku:

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

Výsledok vykonaného kódu:

''' aaa AAA ! '''

Príklad

Teraz nastavme príznak re.M:

res = re.sub('aaa$', '!', txt, flags=re.M) print(res)

Výsledok vykonaného kódu:

''' ! AAA ! '''

Príklad

Teraz použime aj príznak pre ignorovanie veľkosti písmen:

res = re.sub('aaa$', '!', txt, flags=re.M+re.IGNORECASE) print(res)

Výsledok vykonaného kódu:

''' ! ! ! '''
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ť