Reguläre Ausdrücke in Python

Ein regulärer Ausdruck ist eine spezielle Zeichenfolge, die dabei hilft, einfach zu prüfen, ob eine Zeichenkette einem bestimmten Muster entspricht.

Python hat seit Version 1.5 das re-Modul hinzugefügt, das Perl-artige reguläre Ausdrucksmuster bietet.

Das re-Modul verleiht der Python-Sprache die gesamte Funktionalität regulärer Ausdrücke.

Die compile-Funktion erzeugt anhand einer Musterzeichenfolge und optionaler Flag-Parameter ein reguläres Ausdrucksobjekt. Dieses Objekt verfügt über eine Reihe von Methoden zum Abgleichen und Ersetzen regulärer Ausdrücke.

Das re-Modul bietet auch Funktionen, die vollständig mit der Funktionalität dieser Methoden übereinstimmen. Diese Funktionen verwenden eine Musterzeichenfolge als ersten Parameter.

Dieses Kapitel stellt hauptsächlich die häufig verwendeten Funktionen zur Verarbeitung regulärer Ausdrücke in Python vor.


re.match-Funktion

re.match versucht, ein Muster vom Anfang der Zeichenfolge an abzugleichen. Wenn der Abgleich an der Startposition nicht erfolgreich ist, gibt match() None zurück.

Funktionssyntax:

re.match(pattern, string, flags=0)

Beschreibung der Funktionsparameter:

ParameterBeschreibung
patternDer abzugleichende reguläre Ausdruck.
stringDie Zeichenfolge, die abgeglichen werden soll.
FlagsFlags, die verwendet werden, um die Abgleichmethode des regulären Ausdrucks zu steuern, wie z. B.: Groß-/Kleinschreibung, mehrzeiliger Abgleich usw. Siehe:Modifikatoren für reguläre Ausdrücke - optionale Flags

Wenn der Abgleich erfolgreich ist, gibt die Methode re.match ein Match-Objekt zurück, andernfalls gibt sie None zurück.

Wir können die Match-Objekt-Funktionen group(num) oder groups() verwenden, um den abgeglichenen Ausdruck zu erhalten.

Methoden von Match-ObjektenBeschreibung
group(num=0)Die Zeichenkette des gesamten übereinstimmenden Ausdrucks. group() kann mehrere Gruppennummern gleichzeitig entgegennehmen; in diesem Fall gibt es ein Tupel zurück, das die Werte enthält, die diesen Gruppen entsprechen.
groups()Gibt ein Tupel zurück, das alle Zeichenketten der Untergruppen enthält, von 1 bis zur Anzahl der enthaltenen Untergruppen.

Beispiel

#!/usr/bin/python # -*- coding: UTF-8 -*- import re print(re.match('www', 'www.example.com').span()) # Übereinstimmung am Anfang print(re.match('com', 'www.example.com')) # Keine Übereinstimmung am Anfang

Die Ausgabe des obigen Beispiels ist:

(0, 3)
None

Beispiel

#!/usr/bin/python import re line = "Katzen sind schlauer als Hunde" matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I) if matchObj: print "matchObj.group() : ", matchObj.group() print "matchObj.group(1) : ", matchObj.group(1) print "matchObj.group(2) : ", matchObj.group(2) else: print "No match!!"

Das Ergebnis des obigen Beispiels ist wie folgt:

matchObj.group() :  Cats are smarter than dogs
matchObj.group(1) :  Cats
matchObj.group(2) :  smarter

re.search-Methode

re.search durchsucht die gesamte Zeichenkette und gibt die erste erfolgreiche Übereinstimmung zurück.

Funktionssyntax:

re.search(pattern, string, flags=0)

Beschreibung der Funktionsparameter:

ParameterBeschreibung
patternDer abzugleichende reguläre Ausdruck.
stringDie Zeichenfolge, die abgeglichen werden soll.
FlagsFlags, die verwendet werden, um die Übereinstimmungsmethode des regulären Ausdrucks zu steuern, wie z. B.: Groß-/Kleinschreibung, mehrzeilige Übereinstimmung usw.

Wenn die Übereinstimmung erfolgreich ist, gibt die Methode re.search ein Übereinstimmungsobjekt zurück, andernfalls gibt sie None zurück.

Wir können die Match-Objekt-Funktionen group(num) oder groups() verwenden, um den abgeglichenen Ausdruck zu erhalten.

Methoden von Match-ObjektenBeschreibung
group(num=0)Die Zeichenkette des gesamten übereinstimmenden Ausdrucks. group() kann mehrere Gruppennummern gleichzeitig entgegennehmen; in diesem Fall gibt es ein Tupel zurück, das die Werte enthält, die diesen Gruppen entsprechen.
groups()Gibt ein Tupel zurück, das alle Zeichenketten der Untergruppen enthält, von 1 bis zur Anzahl der enthaltenen Untergruppen.

Beispiel

#!/usr/bin/python # -*- coding: UTF-8 -*- import re print(re.search('www', 'www.example.com').span()) # Übereinstimmung am Anfang print(re.search('com', 'www.example.com').span()) # Kein Treffer am Anfang

Die Ausgabe des obigen Beispiels ist:

(0, 3)
(11, 14)

Beispiel

#!/usr/bin/python import re line = "Katzen sind schlauer als Hunde"; searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I) if searchObj: print "searchObj.group() : ", searchObj.group() print "searchObj.group(1) : ", searchObj.group(1) print "searchObj.group(2) : ", searchObj.group(2) else: print "Nichts gefunden!!"
Das Ergebnis des obigen Beispiels ist wie folgt:
searchObj.group() :  Cats are smarter than dogs
searchObj.group(1) :  Cats
searchObj.group(2) :  smarter

Unterschied zwischen re.match und re.search

re.match gleicht nur den Anfang der Zeichenkette ab. Wenn der Anfang der Zeichenkette nicht dem regulären Ausdruck entspricht, schlägt der Abgleich fehl und die Funktion gibt None zurück; während re.search die gesamte Zeichenkette abgleicht, bis eine Übereinstimmung gefunden wird.

Beispiel

#!/usr/bin/python import re line = "Katzen sind schlauer als Hunde"; matchObj = re.match( r'dogs', line, re.M|re.I) if matchObj: print "Übereinstimmung --> matchObj.group() : ", matchObj.group() else: print "Keine Übereinstimmung!!" matchObj = re.search( r'dogs', line, re.M|re.I) if matchObj: print "search --> searchObj.group() : ", matchObj.group() else: print "Keine Übereinstimmung!!"
Die Ausgabe des obigen Beispiels ist wie folgt:
No match!!
search --> searchObj.group() :  dogs

Suchen und Ersetzen

Das re-Modul von Python bietet re.sub, um Übereinstimmungen in einer Zeichenkette zu ersetzen.

Syntax:

re.sub(pattern, repl, string, count=0, flags=0)

Parameter:

  • pattern: Die Musterzeichenkette im regulären Ausdruck.
  • repl: Die Ersatzzeichenkette; kann auch eine Funktion sein.
  • string: Die ursprüngliche Zeichenkette, die durchsucht und ersetzt werden soll.
  • count: Die maximale Anzahl der Ersetzungen nach dem Musterabgleich; Standardwert 0 bedeutet, alle Übereinstimmungen zu ersetzen.

Beispiel

#!/usr/bin/python # -*- coding: UTF-8 -*- import re phone = "2004-959-559 # Dies ist eine ausländische Telefonnummer" # Python-Kommentare in der Zeichenkette löschen num = re.sub(r'#.*$', "", phone) print "Die Telefonnummer ist:", num # Nicht-Ziffern-(-)-Zeichenketten löschen num = re.sub(r'\D', "", phone) print "Die Telefonnummer ist:", num
Das Ergebnis des obigen Beispiels ist wie folgt:
电话号码是:  2004-959-559 
电话号码是 :  2004959559

Der repl-Parameter ist eine Funktion

Im folgenden Beispiel werden die übereinstimmenden Zahlen in der Zeichenkette mit 2 multipliziert:

Beispiel

#!/usr/bin/python # -*- coding: UTF-8 -*- import re # Multipliziere die übereinstimmenden Zahlen mit 2 def double(matched): value = int(matched.group('value')) return str(value * 2) s = 'A23G4HFD567' print(re.sub('(?P<value>\d+)', double, s))

Die Ausgabe nach der Ausführung ist:

A46G8HFD1134

re.compile-Funktion

Die compile-Funktion wird verwendet, um einen regulären Ausdruck zu kompilieren und ein Objekt für reguläre Ausdrücke (Pattern) zu erzeugen, das von Funktionen wie match(), search() und findall() verwendet werden kann.

Das Syntaxformat ist:

re.compile(pattern[, flags])

Parameter:

  • pattern: Ein regulärer Ausdruck in Zeichenkettenform

  • flags: Optional, gibt den Übereinstimmungsmodus an, wie z. B. Ignorieren der Groß-/Kleinschreibung, Mehrzeilenmodus usw. Die konkreten Parameter sind:

    1. re.IGroß-/Kleinschreibung ignorieren
    2. re.LGibt an, dass die speziellen Zeichensätze \w, \W, \b, \B, \s, \S von der aktuellen Umgebung abhängen
    3. re.MMehrzeilenmodus
    4. re.SDas heißt.Und jedes Zeichen einschließlich Zeilenumbruch (.Ohne Zeilenumbruch)
    5. re.UGibt an, dass die speziellen Zeichensätze \w, \W, \b, \B, \d, \D, \s, \S von der Unicode-Zeicheneigenschaftsdatenbank abhängen
    6. re.XUm die Lesbarkeit zu erhöhen, Leerzeichen ignorieren und#Kommentare danach

Beispiel

Beispiel

>>>import re >>> pattern = re.compile(r'\d+') # Wird verwendet, um mindestens eine Ziffer zu matchen >>> m = pattern.match('one12twothree34four') # Am Anfang suchen, keine Übereinstimmung >>> print m None >>> m = pattern.match('one12twothree34four', 2, 10) # Ab der Position 'e' mit dem Matchen beginnen, keine Übereinstimmung >>> print m None >>> m = pattern.match('one12twothree34four', 3, 10) # Beginne den Abgleich ab der Position '1', stimmt genau überein >>> print m # Gibt ein Match-Objekt zurück <_sre.SRE_Match object at 0x10a42aac0> >>> m.group(0) # 0 kann weggelassen werden '12' >>> m.start(0) # 0 kann weggelassen werden 3 >>> m.end(0) # 0 kann weggelassen werden 5 >>> m.span(0) # 0 kann weggelassen werden (3, 5)

Oben wird bei einer erfolgreichen Übereinstimmung ein Match-Objekt zurückgegeben, wobei:

  • group([group1, …])Die Methode wird verwendet, um die Zeichenkette zu erhalten, die von einer oder mehreren Gruppen abgeglichen wurde. Wenn Sie die gesamte übereinstimmende Teilzeichenkette erhalten möchten, können Sie direkt verwendengroup()odergroup(0);
  • start([group])Die Methode wird verwendet, um die Startposition der von einer Gruppe abgeglichenen Teilzeichenkette in der gesamten Zeichenkette zu ermitteln (der Index des ersten Zeichens der Teilzeichenkette), mit einem Standardparameterwert von 0;
  • end([group])Die Methode wird verwendet, um die Endposition der von einer Gruppe abgeglichenen Teilzeichenkette in der gesamten Zeichenkette zu ermitteln (der Index des letzten Zeichens der Teilzeichenkette + 1), mit einem Standardparameterwert von 0;
  • span([group])Die Methode gibt zurück(start(group), end(group))。

Sehen wir uns ein weiteres Beispiel an:

Beispiel

>>>import re >>> pattern = re.compile(r'([a-z]+) ([a-z]+)', re.I) # re.I bedeutet Groß-/Kleinschreibung ignorieren >>> m = pattern.match('Hello World Wide Web') >>> print m # Übereinstimmung erfolgreich, gibt ein Match-Objekt zurück <_sre.SRE_Match object at 0x10bea83e8> >>> m.group(0) # Gibt den gesamten übereinstimmenden Teilstring zurück 'Hello World' >>> m.span(0) # Gibt den Index des gesamten übereinstimmenden Teilstrings zurück (0, 11) >>> m.group(1) # Gibt den von der ersten Gruppe gefundenen Teilstring zurück 'Hello' >>> m.span(1) # Gibt den Index des von der ersten Gruppe gefundenen Teilstrings zurück (0, 5) >>> m.group(2) # Gibt den von der zweiten Gruppe gefundenen Teilstring zurück 'World' >>> m.span(2) # Gibt den von der zweiten Gruppe gefundenen Teilstring zurück (6, 11) >>> m.groups() # Entspricht (m.group(1), m.group(2), ...) ('Hello', 'World') >>> m.group(3) # Es gibt keine dritte Gruppe Traceback (most recent call last): File "<stdin>", line 1, in <Modul> IndexError: keine solche Gruppe

findall

Findet alle Teilzeichenketten, auf die der reguläre Ausdruck in der Zeichenkette passt, und gibt eine Liste zurück. Wenn mehrere Muster übereinstimmen, wird eine Liste von Tupeln zurückgegeben. Wenn keine Übereinstimmungen gefunden werden, wird eine leere Liste zurückgegeben.

Hinweis:match und search finden nur eine Übereinstimmung, während findall alle findet.

Das Syntaxformat ist:

findall(string[, pos[, endpos]])

Parameter:

  • string: Die Zeichenkette, die abgeglichen werden soll.
  • pos: Optionaler Parameter, gibt die Startposition der Zeichenkette an, standardmäßig 0.
  • endpos: Optionaler Parameter, gibt die Endposition der Zeichenkette an, standardmäßig die Länge der Zeichenkette.

Alle Zahlen in der Zeichenkette finden:

Beispiel

# -*- coding:UTF8 -*- import re pattern = re.compile(r'\d+') # Zahlen finden result1 = pattern.findall('example 123 google 456') result2 = pattern.findall('run88oob123google456', 0, 10) print(result1) print(result2)

Ausgabeergebnis:

['123', '456']
['88', '12']

Mehrere übereinstimmende Muster, gibt eine Liste von Tupeln zurück:

Beispiel

import re

result = re.findall(r'(\w+)=(\d+)', 'set width=20 and height=10')
print(result)
[('width', '20'), ('height', '10')]

re.finditer

Ähnlich wie findall, findet alle Teilstrings, auf die der reguläre Ausdruck in der Zeichenfolge passt, und gibt sie als Iterator zurück.

re.finditer(pattern, string, flags=0)

Parameter:

ParameterBeschreibung
patternDer abzugleichende reguläre Ausdruck.
stringDie Zeichenfolge, die abgeglichen werden soll.
FlagsFlags, die verwendet werden, um das Übereinstimmungsverhalten des regulären Ausdrucks zu steuern, wie Groß-/Kleinschreibung, mehrzeilige Übereinstimmung usw. Siehe:Modifikatoren für reguläre Ausdrücke - optionale Flags

Beispiel

# -*- coding: UTF-8 -*- import re it = re.finditer(r"\d+","12a32bc43jf3") for match in it: print (match.group() )

Ausgabeergebnis:

12 
32 
43 
3

re.split

Die split-Methode teilt die Zeichenfolge gemäß den Teilstrings auf, die abgeglichen werden können, und gibt eine Liste zurück. Ihre Verwendungsform ist wie folgt:

re.split(pattern, string[, maxsplit=0, flags=0])

Parameter:

ParameterBeschreibung
patternDer abzugleichende reguläre Ausdruck.
stringDie Zeichenfolge, die abgeglichen werden soll.
maxsplitMaximale Anzahl der Aufteilungen. maxsplit=1 bedeutet, einmal aufzuteilen. Standard ist 0, was keine Begrenzung bedeutet.
FlagsFlags, die verwendet werden, um das Übereinstimmungsverhalten des regulären Ausdrucks zu steuern, wie Groß-/Kleinschreibung, mehrzeilige Übereinstimmung usw. Siehe:Modifikatoren für reguläre Ausdrücke - optionale Flags

Beispiel

>>>import re >>> re.split('\W+', 'example, example, example.') ['example', 'example', 'example', ''] >>> re.split('(\W+)', ' example, example, example.') ['', ' ', 'example', ', ', 'example', ', ', 'example', '.', ''] >>> re.split('\W+', ' example, example, example.', 1) ['', 'example, example, example.'] >>> re.split('a*', 'hello world') # Für eine Zeichenkette, für die keine Übereinstimmung gefunden werden kann, teilt split sie nicht auf ['hello world']

Objekt für reguläre Ausdrücke

re.RegexObject

re.compile() gibt ein RegexObject-Objekt zurück.

re.MatchObject

group() gibt die Zeichenkette zurück, die vom RE gefunden wurde.

  • start()Gibt die Startposition der Übereinstimmung zurück
  • end()Gibt die Endposition der Übereinstimmung zurück
  • span()Gibt ein Tupel zurück, das die (Start-, End-)Positionen der Übereinstimmung enthält

Modifikatoren für reguläre Ausdrücke - Optionale Flags

Reguläre Ausdrücke können optionale Flag-Modifikatoren enthalten, um das Übereinstimmungsmuster zu steuern. Modifikatoren werden als optionales Flag angegeben. Mehrere Flags können durch bitweises ODER-Verknüpfen (|) angegeben werden. Zum Beispiel setzt re.I | re.M sowohl das I- als auch das M-Flag:

ModifiziererBeschreibung
re.IMacht die Übereinstimmung unabhängig von Groß-/Kleinschreibung
re.LFührt eine localeabhängige Übereinstimmung durch
re.MMehrzeilige Übereinstimmung, beeinflusst ^ und $
re.SBewirkt, dass . auf alle Zeichen einschließlich Zeilenumbruch passt
re.UInterpretiert Zeichen gemäß dem Unicode-Zeichensatz. Dieses Flag beeinflusst \w, \W, \b, \B.
re.XDieses Flag bietet ein flexibleres Format, sodass Sie reguläre Ausdrücke schreiben können, die leichter zu verstehen sind.

Muster für reguläre Ausdrücke

Musterzeichenfolgen verwenden eine spezielle Syntax, um einen regulären Ausdruck darzustellen:

Buchstaben und Zahlen repräsentieren sich selbst. Buchstaben und Zahlen in einem Muster eines regulären Ausdrucks stimmen mit denselben Zeichenfolgen überein.

Die meisten Buchstaben und Zahlen haben eine andere Bedeutung, wenn ihnen ein Backslash vorangestellt ist.

Interpunktionszeichen stimmen nur dann mit sich selbst überein, wenn sie escaped sind; andernfalls haben sie eine spezielle Bedeutung.

Der Backslash selbst muss mit einem Backslash maskiert werden.

Da reguläre Ausdrücke oft Backslashes enthalten, solltest du besser Raw-Strings verwenden, um sie darzustellen. Musterelemente (wie r'\t', äquivalent zu '\\t') entsprechen den entsprechenden Sonderzeichen.

Die folgende Tabelle listet die speziellen Elemente in der Syntax regulärer Ausdrucksmuster auf. Wenn Sie optionale Flag-Parameter bei der Verwendung eines Musters angeben, kann sich die Bedeutung bestimmter Musterelemente ändern.

MusterBeschreibung
^Entspricht dem Anfang der Zeichenkette.
$Entspricht dem Ende der Zeichenkette.
.Entspricht jedem Zeichen außer Zeilenumbruch. Wenn das Flag re.DOTALL angegeben ist, kann es jedem Zeichen einschließlich Zeilenumbruch entsprechen.
[...]Wird verwendet, um eine Menge von Zeichen darzustellen, die einzeln aufgelistet werden: [amk] entspricht 'a', 'm' oder 'k'.
[^...]Nicht in [] enthaltene Zeichen: [^abc] entspricht jedem Zeichen außer a, b, c.
re*Entspricht 0 oder mehr Vorkommen des Ausdrucks.
re+Entspricht 1 oder mehr Vorkommen des Ausdrucks.
re?Entspricht 0 oder 1 Vorkommen des Fragments, das durch den vorangehenden regulären Ausdruck definiert ist, auf nicht-gierige Weise
re{ n}Entspricht genau n Vorkommen des vorangehenden Ausdrucks. Zum Beispiel:o{2}Es kann nicht mit dem 'o' in "Bob" übereinstimmen, aber es kann mit den beiden o's in "food" übereinstimmen.
re{ n,}Entspricht n oder mehr Vorkommen des vorangehenden Ausdrucks. Zum Beispiel kann o{2,} nicht mit dem 'o' in "Bob" übereinstimmen, aber es kann mit allen o's in "foooood" übereinstimmen. "o{1,}" ist äquivalent zu "o+". "o{0,}" ist äquivalent zu "o*".
re{ n, m}Entspricht n bis m Vorkommen des Fragments, das durch den vorangehenden regulären Ausdruck definiert ist, auf gierige Weise
a| bEntspricht a oder b
(re)Gruppiert den regulären Ausdruck und merkt sich den übereinstimmenden Text
(?imx)Der reguläre Ausdruck enthält drei optionale Flags: i, m oder x. Betrifft nur den Bereich innerhalb der Klammern.
(?-imx)Der reguläre Ausdruck deaktiviert die optionalen Flags i, m oder x. Betrifft nur den Bereich innerhalb der Klammern.
(?: re)Ähnlich wie (...), stellt aber keine Gruppe dar
(?imx: re)Verwendet die optionalen Flags i, m oder x innerhalb der Klammern
(?-imx: re)Verwendet innerhalb der Klammern nicht die optionalen Flags i, m oder x
(?#...)Kommentar.
(?= re)Positive Lookahead-Assertion. Wenn der enthaltene reguläre Ausdruck, dargestellt durch ..., an der aktuellen Position erfolgreich übereinstimmt, gelingt sie; andernfalls schlägt sie fehl. Aber sobald der enthaltene Ausdruck versucht wurde, rückt die Matching-Engine nicht vor; der Rest des Musters muss weiterhin rechts von der Assertion zu matchen versuchen.
(?! re)Negative Lookahead-Assertion. Gegenteil der positiven Assertion; gelingt, wenn der enthaltene Ausdruck an der aktuellen Position in der Zeichenkette nicht übereinstimmen kann.
(?> re)Entspricht einem unabhängigen Muster und eliminiert Backtracking.
\wEntspricht Buchstaben, Ziffern und Unterstrichen.
\WEntspricht allem außer Buchstaben, Ziffern und Unterstrichen.
\sEntspricht jedem Whitespace-Zeichen, äquivalent zu[ \t\n\r\f]。
\SEntspricht jedem Nicht-Whitespace-Zeichen.
\dEntspricht einer beliebigen Ziffer, äquivalent zu [0-9].
\DEntspricht einem beliebigen Nicht-Ziffer-Zeichen.
\AEntspricht dem Anfang der Zeichenkette.
\ZEntspricht dem Ende der Zeichenkette. Wenn ein Zeilenumbruch vorhanden ist, entspricht es nur dem Ende der Zeichenkette vor dem Zeilenumbruch.
\zEntspricht dem Ende der Zeichenkette
\GEntspricht der Position, an der die letzte Übereinstimmung abgeschlossen wurde.
\bEntspricht einer Wortgrenze, das heißt, der Position zwischen einem Wort und einem Leerzeichen. Zum Beispiel kann 'er\b' mit dem 'er' in "never" übereinstimmen, aber nicht mit dem 'er' in "verb".
\BEntspricht einer Nicht-Wortgrenze. 'er\B' kann mit dem 'er' in "verb" übereinstimmen, aber nicht mit dem 'er' in "never".
\n, \t, usw.Entspricht einem Zeilenumbruchzeichen. Entspricht einem Tabulatorzeichen. usw.
\1...\9Entspricht dem Inhalt der n-ten Gruppe.
\10Entspricht dem Inhalt der n-ten Gruppe, wenn sie zuvor übereingestimmt hat. Andernfalls verweist es auf einen oktalen Zeichencode-Ausdruck.

Beispiele für reguläre Ausdrücke

Zeichenübereinstimmung

BeispielBeschreibung
pythonEntspricht "python".

Zeichenklassen

BeispielBeschreibung
[Pp]ython Entspricht "Python" oder "python"
rub[ye]Entspricht "ruby" oder "rube"
[aeiou]Entspricht einem beliebigen Buchstaben in den Klammern
[0-9]Entspricht einer beliebigen Ziffer. Ähnlich wie
[a-z]Entspricht einem beliebigen Kleinbuchstaben
[A-Z]Entspricht einem beliebigen Großbuchstaben
[a-zA-Z0-9]Entspricht einem beliebigen Buchstaben oder einer Ziffer
[^aeiou]Alle Zeichen außer den Buchstaben aeiou
[^0-9]Entspricht Zeichen, die keine Ziffern sind

Spezielle Zeichenklassen

BeispielBeschreibung
.Stimmt mit jedem einzelnen Zeichen außer "\n" überein. Um mit jedem Zeichen einschließlich '\n' übereinzustimmen, verwenden Sie ein Muster wie '[.\n]'.
\dEntspricht einem Ziffernzeichen. Äquivalent zu [0-9].
\D Entspricht einem Nicht-Ziffernzeichen. Äquivalent zu [^0-9].
\sEntspricht jedem Leerraumzeichen, einschließlich Leerzeichen, Tabulator, Seitenvorschub usw. Äquivalent zu [ \f\n\r\t\v].
\S Entspricht jedem Nicht-Leerraumzeichen. Äquivalent zu [^ \f\n\r\t\v].
\wEntspricht einem beliebigen Wortzeichen einschließlich Unterstrich. Äquivalent zu '[A-Za-z0-9_]'.
\WEntspricht einem beliebigen Nicht-Wortzeichen. Äquivalent zu '[^A-Za-z0-9_]'.
Weitere Erweiterungen