Die Unterstützung von Regex im Web-Editor ist durch die Implementierung der Lucene Regex Engine eingeschränkt.
Um Regex zu verwenden, aktivieren Sie in den Filtereinstellungen. Ein grünes Häkchen im Eingabefeld des Filters zeigt die erfolgreiche Validierung eines gültigen Regex an.
Abfragen sind standardmäßig nicht groß-/kleinschreibungsempfindlich. Aktivieren Sie in den Filtereinstellungen, um sie groß-/kleinschreibungsempfindlich zu machen.
(was sicherstellt, dass nur vollständige Wörter und keine Teilstrings innerhalb längerer Wörter übereinstimmen) ist nicht verfügbar.
Die Abfrage ^abc$ funktioniert wie erwartet, d.h. sie stimmt mit dem gesamten Segment überein, während den Teilstring abc in jedem Text übereinstimmt.
Einschränkungen
Die korrekte Ersetzung von teilweise formatierten Abfragen wird nicht unterstützt, z.B. die Suche nach "Jméno: $1, Příjmení: $2." im Text "\{b\>Vorname<}: Bob, \{biu\>Nachname\<biu\}: Dylan." wird als “{>Jméno: Bob, Příjmení: Dylan\<b\}” ersetzt.
Nicht unterstützte Muster
-
Wortgrenzenanker
\b, der verwendet wird, um genaue Wörter zu finden (funktioniert im Desktop-Editor). -
\\[1-9]- Rückverweise (\1, \2 usw.), z.B.(\w+)\s+\1, um duplizierte Wörter wie „hallo hallo“ zu finden. -
\(\?=|\(\?!|\(\?<=|\(\?<!- Vorausblick und Rückblick, z.B.cat(?=\.jpg), um „cat“ nur in „cat.jpg“ zu finden. -
\(\?:- Nicht-erfassende Gruppen, z.B. (?:Mr|Mrs|Ms)\. \w+,, aber erfassende Gruppen(Mr|Mrs|Ms)\. \w+werden unterstützt und stimmen mit Namen wie „Mrs. Smith“, „Mr. Brown“ überein. -
\(\?#- Inline-Kommentare, z.B.\d{4}-(?# Jahr)\d{2}-(?# Monat)\d{2}(?# Tag), um „2025-06-25“ zu finden. -
\(\?P<[^>]+>- Benannte Erfassungsgruppen, z.B. (?P<amount>\d+)\s?(?P<currency>USD|EUR), um „150 USD“ und „99 EUR“ zu finden.
Punkt (.) als Platzhalter für jedes einzelne Zeichen
-
c.at: Entspricht: „chat“, „coat“. Entspricht NICHT: „cat“, „cheat“. -
wa.ter: Entspricht: „waiter“, „waster“. Entspricht NICHT: „water“. -
s.ip: Entspricht: „skip“, „ship“, „slip“. Entspricht NICHT: „sip“, „strip“.
? - Null oder eine Vorkommen
-
colou?r: Entspricht: „color“, „colour“. -
g?rain: Entspricht: „grain“, „rain“. -
books?: Entspricht: „book“, „books“.
.* - Beliebige Anzahl von Zeichen (einschließlich keiner)
-
h.*y: Entspricht: „happy“, „history“, „honey“. -
sa.*d: Entspricht: „sad“, „sand“, „satisfied“. -
m.*ing: Entspricht: „morning“, „meeting“, „marketing“.
.+ - Mindestens ein Zeichen muss erscheinen.
-
pa.+er: Entspricht: „paper“, „painter“. -
a.+ed: Entspricht: „asked“, „accepted“, „allowed“.
* - Null oder mehr Vorkommen.
-
go*al: Entspricht: „goal“, „goooooooal“.
+ - Eine oder mehrere Vorkommen
-
keine+: Entspricht: „keine“, „keineeeee“ -
$1+: Entspricht: „$1“, „$11“, „$111“
Es wird empfohlen, ein so spezifisches Muster wie möglich zu verwenden, da offene Muster Leistungsprobleme im Editor verursachen können.
Wichtig
Der Editor hat eine eingebaute Grenze, wie komplex ein Regex-Muster sein kann. Muster, die zu allgemein sind oder stark Wildcards verwenden, können als ungültiges Regex fehlschlagen. Um dies zu vermeiden:
-
Halten Sie Muster kurz und spezifisch.
error-[0-9]{3}ist in Ordnung;.*a.*b.*c.*d.*ist nicht. -
Minimieren Sie Wildcards. Jedes
.+oder.*vervielfacht die interne Komplexität. Bevorzugen Sie Zeichenklassen wie[A-Z]+über.*, wo immer möglich. -
Vermeiden Sie lange Alternationen mit Wiederholungen. Ein Muster wie
(word1|word2|...|word20){2,}kann schnell die Grenze überschreiten. Dies wird verstärkt, wenn die Alternativen mehrere Wörter oder Satzzeichen enthalten, was zur Regex-Komplexität beiträgt. -
Verankern Sie eine Seite, wenn möglich.
^prefix.*ist viel günstiger als.*middle.*.
Wenn das Muster abgelehnt wird, versuchen Sie, es gezielter zu gestalten: Beginnen Sie mit einem längeren festen Präfix und verfeinern Sie von dort aus. Erwägen Sie, die Anzahl der Alternativen zu reduzieren oder sie in separaten Mustern zu behandeln, anstatt alles in einem komplexen Regex zu kombinieren.
Beispiel:
Filtern nach E-Mail-Adressen:
-
Dieses Muster wird Leerzeichen und alle umgebenden Wörter mit potenziell zu vielen Ergebnissen übereinstimmen:
.*@.* -
Um die Ergebnisse auf alle E-Mail-Adressen zu beschränken:
[\w.+\-]+@[\w.+\-]+ -
Um die Ergebnisse nur auf .com-E-Mails zu beschränken:
[\w.+\-]+@[\w.+\-]\.com -
Um die Ergebnisse auf solche zu beschränken, die eine Ziffer in den E-Mail-Adressen enthalten:
[\w.+\-]*\d+[\w.+\-]*@[\w.\-]+
-
cat|dog: Entspricht: „cat“ und „dog“ -
red|blue|green: Entspricht: „red“, „blue“, „green“
-
[A-Z]+: Entspricht einem oder mehreren Großbuchstaben in Folge (eine Sequenz). -
[A-Z]{2,}: Entspricht jeder Reihe von Großbuchstaben (nützlich z.B. zum Übereinstimmen von Akronymen oder in Großbuchstaben geschriebenen Zeichenfolgen) -
[0-9]{4}: Entspricht vierstelligen Zahlen, z.B. "1999", "2003", "1876" (auch innerhalb einer mehr als vierstelligen Zeichenfolge gefunden; um die Ergebnisse zu beschränken, sollte die für die Zukunft geplante Option "Match-Wörter" verwendet werden) -
[A-Za-z0-9]+: Entspricht jeder alphanumerischen Zeichenfolge (hello! → hello würde übereinstimmen, aber ! ist kein Teil von [A-Za-z0-9]; 100% → nur 100 würde übereinstimmen) -
([A-Za-z]+\d+|\d+[A-Za-z]+): Entspricht strikt einer Kombination aus Ziffern und Buchstaben, z.B. „user123“, „Admin99“, „Win11“, „5g“, „1080p“ -
[0-9]{2,4}-[A-Z]{2,3}: Entspricht Kennzeichen, z.B. „12-XY“, „9999-ABC“
-
\+[0-9]{1,2}: Entspricht „+40“, „+1“ -
\{version: [0-9]+\}: Entspricht „{version: 12}“, „{version: 13}“ -
C:\\[A-Za-z]+: Entspricht „C:\Users“, C:\Documents, „C:\Desktop“
-
Standardmäßig wird die Regex-Filterung als groß- und kleinschreibungsunabhängig implementiert.
c.at: Entspricht: „chat“, „Chat“, „CHAT“ und „coat“, „Coat“, „COAT“ -
Regex-Filterung kann mit dem UI-Filter kombiniert werden
Regex-Erfassungsgruppen werden erkannt und die gesamte Abfrage wird hervorgehoben, z.B. s(e)g hebt "seg" hervor. Erfassungsgruppen können für Ersetzungen verwendet werden, z.B. kann „Name: Bob“ mit Name: (.*?) gesucht und durch einen Rückverweis auf Jméno: $1 ersetzt werden. Fehlende Rückverweise werden elegant behandelt, d.h. die Abfrage Name: (.*?) mit der Ersetzung Jméno: $1, Titel: $2 wird als Jméno: Bob, Titel: $2 ersetzt.
Beispiele für Rückverweise bei Ersetzungen:
-
filter
(\d+),(\d+)und ersetzen$1.$2um Dezimaltrennzeichen zu normalisieren (z.B. von 5,6 oder 35,949 zu 5.6 oder 35.949) -
filter
(\d+)\.(\d+)und ersetzen$1,$2um Dezimaltrennzeichen zu normalisieren (z.B. von 5.6 oder 35.949 zu 5,6 oder 35,949) -
filter
(\d{4})-(\d{2})-(\d{2})und ersetzen$3/$2/$1um das Datum umzuformatieren (z.B. von 2025-06-05 zu 05/06/2025) -
filter
ID-(\d{3,})und ersetzenTicket #$1um die Ticketnummer zu extrahieren (z.B. von zu ) -
filter
(cat|dog)und ersetzen$1-$1um den übereinstimmenden Text zu duplizieren (z.B. von cat zu cat-cat und von dog zu dog-dog) -
Optionale Gruppe: filter
Hallo(, (\w+))?und ersetzenHi $1um Grüße zu transformieren, indem „Hallo“ vor Namen oder allein ersetzt wird (z.B. von zu und von zu )