⊗pyPmRESF 73 of 129 menu

Flag til streng regulære udtryk i Python

For at indstille flag som en af de valgfrie parametre til metoder, der arbejder med regulære udtryk, bruges følgende syntaks:

flags=re.flag_navn

Grundlæggende flag til arbejde med regulære udtryk

Flag Formål
re.IGNORECASE Ignorerer store og små bogstaver.
re.DOTALL Punktet matcher ethvert tegn, inklusive linjeskift.
re.I Gør søgningen case-insensitiv.
re.L Søger efter ord i henhold til det aktuelle sprog. Fortolkningen påvirker den alfabetiske gruppe (\w og \W), samt adfærd af ordgrænse (\b og \B).
re.M Tegnet $ matcher slutningen af enhver linje i teksten (ikke kun slutningen af teksten) og tegnet ^ matcher starten af enhver linje i teksten (ikke kun i starten af teksten).
re.S Ændrer punktets (.) betydning til at matche ethvert tegn, inklusive ny linje.
re.U Fortolker bogstaver i henhold til Unicode-tegnsættet. Dette flag påvirker adfærden af \w, \W, \b, \B. I Python 3+ er dette flag sat som standard.
re.X Tillader flerliniers syntaks for regulære udtryk. Den ignorerer mellemrum inde i mønsteret (bortset fra mellemrum inde i en karakterklasse [] eller når de escapes med omvendt skråstreg) og behandler ikke escapet '#' som en kommentar.

Eksempel

Med flaget re.IGNORECASE kan man ignorere store og små bogstaver. Lad os se, hvordan det gøres. I dette eksempel finder det regulære udtryk kun små bogstaver:

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

Resultatet af udført kode:

'! ! CCC DDD'

Eksempel

Lad os nu tilføje flaget re.IGNORECASE til den fjerde parameter i metoden, og det regulære udtryk vil begynde at søge efter tegn i alle cases:

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

Resultatet af udført kode:

'! ! ! !'

Eksempel

Lad os finde alle linjeskift med det regulære udtryk:

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

Resultatet af udført kode:

'aaa!bbb'

Eksempel

Men hvis man skal erstatte alle tegn, så vil punktummer i det regulære udtryk ikke fange linjeskift:

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

Resultatet af udført kode:

'!!! !!!'

Eksempel

For at rette denne fejl, bør man anvende flaget re.DOTALL:

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

Resultatet af udført kode:

'!!!!!!!'

Eksempel

I parameteren kan man også sende flere flag ved at sætte operatoren + mellem dem. Lad os først erstatte bogstavet 'a' i slutningen af linjen:

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

Resultatet af udført kode:

''' aaa AAA ! '''

Eksempel

Lad os nu sætte flaget re.M:

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

Resultatet af udført kode:

''' ! AAA ! '''

Eksempel

Lad os nu anvende flaget for at ignorere store og små bogstaver også:

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

Resultatet af udført kode:

''' ! ! ! '''
Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis