Google Sheets-Kochbuch: RE2 Syntax für Google Sheets
Diese Seite ist die deutsche Übersetzung der Seite RE2 regular expression syntax reference vom 20.02.2022. Die Syntax Referenz wurde um die Sprachelemente bereinigt, die in Google-Sheets nicht funktionieren (Stand: 03/2022). Anmerkungen des Übersetzters kursiv.
Einzelzeichen
Bearbeiten.
jedes Zeichen, mit Flag einschließlich Zeilenumbruch (s=true)[xyz]
Zeichenklasse[^xyz]
negierte Zeichenklasse\d
Perl Zeichenklasse\D
negierte Perl Zeichenklasse[[:alpha:]]
ASCII Zeichenklasse[[:^alpha:]]
negierte ASCII Zeichenklasse
Zusammengesetzte Zeichen
Bearbeitenxy
«x» gefolgt von «y»x|y
«x» oder «y» (bevorzugt «x»)
Wiederholungen
Bearbeitenx*
null oder mehr «x», bevorzugt mehrx+
ein oder mehr «x», bevorzugt mehrx?
null oder ein «x», bevorzugt einx{n,m}
«n» oder «n»+1 oder ... oder «m» «x», bevorzugt mehrx{n,}
«n» oder mehr «x», bevorzugt mehrx{n}
genau «n» «x»x*?
null oder mehr «x», bevorzugt wenigerx+?
ein oder mehr «x», bevorzugt wenigerx??
null oder ein «x», bevorzugt nullx{n,m}?
«n» oder «n»+1 oder ... oder «m» «x», bevorzugt wenigerx{n,}?
«n» oder mehr «x», bevorzugt wenigerx{n}?
genau «n» «x»
Einschränkungen in der Implementation: die zählenden Formen «x{n,m}»
, «x{n,}»
und «x{n}»
weisen Formen zurück, die über 1000 Wiederholungen erzeugen. Unbegrenzte Wiederholungen unterliegen dieser Einschränkung nicht. ... hier muss ich eine bessere Übersetzung finden ...
Gruppierung
Bearbeiten"re" steht hier für "regular expression", also regulärer Ausdruck.
(re)
nummerierte Speichergruppe (submatch)- Die Gruppe wird über $<Gruppennummer>, also z.B. $1 angesprochen. Dabei sind maximal 9 speichernde Gruppen möglich (1-9). Die Gruppe 0 enthält den ursprünglichen String.
(?P<name>re)
benannte & nummerierte Speichergruppe (submatch)- Es ist mir noch nicht gelungen, die benannte Speichergruppe mit ihrem Namen anzusprechen. Die Ansprache über die Nummer funktioniert.
(?:re)
nicht speichernde Gruppe(?flags)
setzt Flags in der aktuellen Speichergruppe(?flags:re)
setzt Flags in der nicht speichernden Gruppe
Flags
Bearbeiteni
Groß-/Kleinschreibung wird nicht beachtet (Standard: falsch)m
Mehrzeilenmodus: ^ und $ stimmen zusätzlich zum Anfang- und Endtext mit der Anfangs- und Endzeile überein (Standard: falsch)s
Damit matched der «.» den Zeilenumbruch (Standard: falsch).U
Nicht gierig: vertauscht «x*» und «x*?», «x+» und «x+?», etc (Standard: falsch)
Flag werden mit (?imsU)
gesetzt, bzw. mit (?-imsU)
gelöscht. Es geht z.B. auch (?is-mU), das setzt is und löscht mU.
Text- Zeilen- und Wortgrenzen
Bearbeiten^
Text- oder Zeilenanfang («m»=true)$
Text- oder Zeilenende (wie «\z» nicht «\Z») («m»=true)\A
Textanfang\b
bei ASCII Wortgrenze («\w» auf der einen Seite und «\W», «\A», oder «\z» auf der anderen Seite)\B
nicht bei ASCII Wortgrenze\z
Textende
Escapesequenzen
Bearbeiten\a
Glocke (== \007)\f
Seitenvorschub (== \014)\t
horizontaler Tab (== \011)\n
Zeilenumbruch (== \012)\r
Wagenrücklauf (== \015)\v
vertikaler Tab (== \013)\*
Das Zeichen «*», für jedes Zeichen «*»\123
Zeichencode octal (bis zu drei Ziffern)\x7F
Zeichencode hexadezimal (genau zwei Ziffern)\x{10FFFF}
Zeichencode hexadezimal\C
Ein einzelnes Byte, auch wenn im UTF-8 Modus\Q...\E
Literaler Text zwischen \Q und \E, einschließlich der Sonderzeichen, die sonst escaped werden müssten.
Elemente von Zeichenklassen
Bearbeitenx
EinzelbuchstabeA-Z
Zeichenbereich (inklusiv)\d
Perl Zeichenklasse[:foo:]
ASCII Zeichenklasse «foo»
Benannte Zeichenklassen als Elemente von Zeichenklassen
Bearbeiten[\d]
Ziffern (== \d)[^\d]
keine Ziffern (== \D)[\D]
keine Ziffern (== \D)[^\D]
nicht keine Ziffern (== \d)[[:name:]]
benannte ASCII Klasse innerhalb der Zeichenklasse (== [:name:])[^[:name:]]
benannte ASCII Klasse innerhalb der negierten Zeichenklasse (== [:^name:])
Perl Zeichenklassen (nur ASCII)
Bearbeiten\d
Zahlzeichen (== [0-9])\D
keine Zahlzeichen (== [^0-9])\s
Leerraumzeichen (== [\t\n\f\r ])\S
keine Leerraumzeichen (== [^\t\n\f\r ])\w
Wortzeichen (== [0-9A-Za-z_])\W
keine Wortzeichen (== [^0-9A-Za-z_])
ASCII Zeichenklassen
Bearbeiten[[:alnum:]]
alphanumerisch (== [0-9A-Za-z])[[:alpha:]]
Buchstaben (== [A-Za-z])[[:ascii:]]
ASCII (== [\x00-\x7F])[[:blank:]]
leer (== [\t ])[[:cntrl:]]
control (== [\x00-\x1F\x7F])[[:digit:]]
Ziffern (== [0-9])[[:graph:]]
graphisch (== [!-~] == [A-Za-z0-9!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])[[:lower:]]
Kleinbuchstaben (== [a-z])[[:print:]]
druckbar (== [ -~] == [ [:graph:]])[[:punct:]]
Satzzeichen (== [!-/:-@[-`{-~])[[:space:]]
Leerraumzeichen (== [\t\n\v\f\r ])[[:upper:]]
Großbuchstaben (== [A-Z])[[:word:]]
Wortzeichen (== [0-9A-Za-z_])[[:xdigit:]]
Hexadesimalziffer (== [0-9A-Fa-f])
Die Beispiele auf dieser Seite wurden getestet: 02/2022