⊗pyPmRESF 73 of 129 menu

Flags für Regex-Strings in Python

Um Flags als einen der optionalen Parameter für Methoden, die mit regulären Ausdrücken arbeiten, zu setzen, verwendet man die folgende Syntax:

flags=re.Flaggenname

Hauptflags für die Arbeit mit regulären Ausdrücken

Flag Zweck
re.IGNORECASE Ignoriert die Groß-/Kleinschreibung von Zeichen.
re.DOTALL Der Punkt steht für beliebige Zeichen, einschließlich Zeilenumbrüchen.
re.I Macht die Suche case-insensitive (groß-/kleinschreibungsunabhängig).
re.L Durchsucht Wörter entsprechend der aktuellen Sprache. Diese Interpretation betrifft die alphabetische Gruppe (\w und \W) sowie das Verhalten der Wortgrenze (\b und \B).
re.M Das Zeichen $ sucht am Ende jeder Textzeile (nicht nur am Textende) und das Zeichen ^ sucht am Anfang jeder Textzeile (nicht nur am Textanfang).
re.S Ändert die Bedeutung des Punkts (.) auf Übereinstimmung mit jedem Zeichen, einschließlich neuer Zeilen.
re.U Interpretiert Buchstaben gemäß dem Unicode-Zeichensatz. Dieses Flag beeinflusst das Verhalten von \w, \W, \b, \B. In Python 3+ ist dieses Flag standardmäßig gesetzt.
re.X Ermöglicht eine mehrzeilige Syntax für reguläre Ausdrücke. Es ignoriert Leerzeichen innerhalb des Patterns (außer Leerzeichen innerhalb einer Zeichenklasse [] oder wenn sie mit einem Backslash maskiert sind) und behandelt nicht maskierte '#' als Kommentare.

Beispiel

Mit dem Flag re.IGNORECASE kann man die Groß-/Kleinschreibung von Zeichen ignorieren. Lasst uns ansehen, wie das gemacht wird. In diesem Beispiel findet der reguläre Ausdruck nur Kleinbuchstaben:

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

Ergebnis der Codeausführung:

'! ! CCC DDD'

Beispiel

Fügen wir nun im vierten Parameter der Methode das Flag re.IGNORECASE hinzu und der reguläre Ausdruck beginnt, Zeichen in allen Groß-/Kleinschreibungsvarianten zu suchen:

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

Ergebnis der Codeausführung:

'! ! ! !'

Beispiel

Lasst uns alle Zeilenumbrüche mit einem regulären Ausdruck finden:

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

Ergebnis des ausgeführten Codes:

'aaa!bbb'

Beispiel

Aber wenn man alle Zeichen ersetzen möchte, dann werden mit einem Punkt in der Regex keine Zeilenumbrüche erfasst:

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

Ergebnis des ausgeführten Codes:

'!!! !!!'

Beispiel

Um diesen Fehler zu beheben, sollte man das Flag re.DOTALL anwenden:

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

Ergebnis des ausgeführten Codes:

'!!!!!!!'

Beispiel

Im Parameter können auch mehrere Flags übergeben werden, indem man den Operator + zwischen ihnen setzt. Lasst uns zuerst den Buchstaben 'a' am Ende der Zeile ersetzen:

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

Ergebnis des ausgeführten Codes:

''' aaa AAA ! '''

Beispiel

Setzen wir nun das Flag re.M:

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

Ergebnis des ausgeführten Codes:

''' ! AAA ! '''

Beispiel

Wenden wir nun zusätzlich das Flag zur Ignorierung der Groß-/Kleinschreibung an:

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

Ergebnis des ausgeführten Codes:

''' ! ! ! '''
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικά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
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen