⊗pyPmRESF 73 of 129 menu

Flags voor regex strings in Python

Om flags als een van de optionele parameters voor methodes die met regex werken in te stellen, gebruiken we de volgende syntaxis:

flags=re.flag_naam

Belangrijkste flags voor het werken met regex

Flag Doel
re.IGNORECASE Negeert de hoofd-/kleine letter gevoeligheid van karakters.
re.DOTALL Een punt staat voor elk karakter, inclusief regeloverloop.
re.I Maakt de zoekopdracht niet hoofdlettergevoelig.
re.L Zoekt woorden volgens de huidige taal. Deze interpretatie heeft invloed op de alfabetische groep (\w en \W), en ook op het gedrag van de woordgrens (\b en \B).
re.M Het karakter $ zoekt aan het einde van elke tekstregel (niet alleen het einde van de tekst) en het karakter ^ zoekt aan het begin van elke tekstregel (niet alleen aan het begin van de tekst).
re.S Verandert de betekenis van de punt (.) naar overeenkomst met elk karakter, inclusief een nieuwe regel.
re.U Interpreteert letters volgens de Unicode-tekenset. Deze flag beïnvloedt het gedrag van \w, \W, \b, \B. In Python 3+ is deze flag standaard ingesteld.
re.X Staat multiline syntaxis van de reguliere expressie toe. Het negeert spaties binnen het patroon (behalve spaties binnen een set [] of wanneer afgeschermd door een backslash) en behandelt een niet afgeschermde '#' als een opmerking.

Voorbeeld

Met de flag re.IGNORECASE kun je de hoofdlettergevoeligheid negeren. Laten we bekijken hoe dat wordt gedaan. In dit voorbeeld vindt de regex alleen kleine letters:

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

Resultaat van de uitgevoerde code:

'! ! CCC DDD'

Voorbeeld

Laten we nu in de vierde parameter van de methode de flag re.IGNORECASE toevoegen, dan gaat de regex karakters in alle hoofdlettergevallen zoeken:

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

Resultaat van de uitgevoerde code:

'! ! ! !'

Voorbeeld

Laten we met regex alle regeloverlopen vinden:

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

Resultaat van de uitgevoerde code:

'aaa!bbb'

Voorbeeld

Maar, als je alle karakters wilt vervangen, dan worden met een punt in de regex de regeloverlopen niet meegenomen:

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

Resultaat van de uitgevoerde code:

'!!! !!!'

Voorbeeld

Om deze fout te herstellen, moet de flag re.DOTALL worden toegepast:

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

Resultaat van de uitgevoerde code:

'!!!!!!!'

Voorbeeld

In de parameter kunnen ook meerdere flags worden doorgegeven, door de operator + tussen hen te plaatsen. Laten we eerst de letter 'a' aan het einde van de regel vervangen:

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

Resultaat van de uitgevoerde code:

''' aaa AAA ! '''

Voorbeeld

Laten we nu de flag re.M instellen:

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

Resultaat van de uitgevoerde code:

''' ! AAA ! '''

Voorbeeld

Laten we nu ook de flag voor het negeren van hoofdlettergevoeligheid toepassen:

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

Resultaat van de uitgevoerde code:

''' ! ! ! '''
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren