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 für den Filter 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
\bwird verwendet, um genaue Wörter zu finden (funktioniert im Desktop-Editor). -
\\[1-9]- Rückverweise (\1, \2 usw.), z.B.(\w+)\s+\1um 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]+gegenüber.*, wo immer möglich. -
Vermeiden Sie lange Alternationen mit Wiederholungen. Ein Muster wie
(word1|word2|...|word20){2,}kann die Grenze schnell ü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 haben:
[\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 einer Reihe (eine Sequenz). -
[A-Z]{2,}: Entspricht jeder Serie 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 länger 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 das Regex-Filtern als fall-unempfindlich implementiert.
c.at: Entspricht: „chat“, „Chat“, „CHAT“ und „coat“, „Coat“, „COAT“ -
Regex-Filtern 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. „Name: Bob“ kann mit Name: (.*?) gesucht und durch die Verwendung eines Rückverweises auf Jméno: $1 ersetzt werden. Fehlende Rückverweise werden freundlich 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:
-
filtern
(\d+),(\d+)und ersetzen$1.$2um Dezimaltrennzeichen zu normalisieren (z.B. von 5,6 oder 35,949 zu 5.6 oder 35.949) -
filtern
(\d+)\.(\d+)und ersetzen$1,$2um Dezimaltrennzeichen zu normalisieren (z.B. von 5.6 oder 35.949 zu 5,6 oder 35,949) -
filtern
(\d{4})-(\d{2})-(\d{2})und ersetzen$3/$2/$1um das Datum umzuformatieren (z.B. von 2025-06-05 zu 05/06/2025) -
filtern
ID-(\d{3,})und ersetzenTicket #$1um die Ticketnummer zu extrahieren (z.B. von zu ) -
filtern
(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: filtern
Hallo(, (\w+))?und ersetzenHi $1um Grüße zu transformieren, indem „Hallo“ vor Namen oder allein ersetzt wird (z.B. von zu und von zu )