Die Regex-Unterstützung im Web-Editor ist durch die Implementierung der Lucene Regex Engine begrenzt.
Um Regex zu verwenden, aktivieren Sie in den Filtereinstellungen. Ein grünes Häkchen im Filter-Eingabefeld zeigt die erfolgreiche Validierung eines gültigen Regex an.
Querys sind standardmäßig nicht zwischen Groß- und Kleinschreibung unterscheidend. Aktivieren Sie in den Filtereinstellungen, damit diese zwischen Groß- und Kleinschreibung unterscheiden.
(sicherstellen, dass nur vollständige Wörter und keine Teilstrings innerhalb längerer Wörter gematcht werden) ist nicht verfügbar.
Die Query ^abc$ wird wie erwartet funktionieren, d. h. das gesamte Segment matchen, während den Teilstring abc in jedem Text matchen wird.
Einschränkungen
Der korrekte Ersatz von teilweise formatierten Querys wird nicht unterstützt, z. B. wird die Suche nach "Jméno: $1, Příjmení: $2." im Text "\{b\>First name<}: Bob, \{biu\>Last name\<biu\}: Dylan." ersetzt als „{>Jméno: Bob, Příjmení: Dylan\<b\}“
Nicht unterstützte Muster
-
Wortgrenzen-Anker
\bzum Match von exakten Wörtern (funktioniert im Desktop-Editor). -
\\[1-9]- Rückwärtsreferenzen (\1, \2 usw.), z. B.(\w+)\s+\1zum Match von doppelten Wörtern wie „hello hello“ -
\(\?=|\(\?!|\(\?<=|\(\?<!- Lookahead und Lookbehind, z. B.cat(?=\.jpg)zum Match von „cat“ nur in „cat.jpg“ -
\(\?:- Nicht-erfassende Gruppen, z. B. (?:Mr|Mrs|Ms)\. \w+,, aber erfassende Gruppen(Mr|Mrs|Ms)\. \w+werden unterstützt und matchen Namen wie „Mrs. Smith“, „Mr. Brown“ -
\(\?#- Inline-Kommentare, z. B.\d{4}-(?# year)\d{2}-(?# month)\d{2}(?# day)zum Match von „2025-06-25“ -
\(\?P<[^>]+>- Benannte Erfassungsgruppen, z. B. (?P<amount>\d+)\s?(?P<currency>USD|EUR)zum Match von „150 USD“ und „99 EUR“
Punkt (.) als Platzhalter für ein beliebiges einzelnes Zeichen
-
c.at: Matches: „chat“, „coat“. Entspricht NICHT: „cat“, „cheat“ -
wa.ter: Match: „waiter“, „waster“. Entspricht NICHT: „water“ -
s.ip: Match: „skip“, „ship“, „slip“. Entspricht NICHT: „sip“, „strip“
? - Null oder ein Vorkommen
-
colou?r: Match: „color“, „colour“ -
g?rain: Match: „grain“, „rain“ -
books?: Match: „book“, „books“
.* - Beliebige Anzahl an Zeichen (einschließlich keines)
-
h.*y: Match: „happy“, „history“, „honey“ -
sa.*d: Match: „sad“, „sand“, „satisfied“ -
m.*ing: Match: „morning“, „meeting“, „marketing“
.+ - Mindestens ein Zeichen muss vorkommen
-
pa.+er: Match: „paper“, „painter“ -
a.+ed“ Match: „asked“, „accepted“, „allowed“
* - Null oder mehr Vorkommen
-
go*al: Match: „goal“, „goooooooal“
+ - Ein oder mehr Vorkommen
-
no+: Matches: „no“, „noooooo“ -
$1+: Matches: „$1“, „$11“, „$111“
Es wird empfohlen, ein möglichst spezifisches Muster zu verwenden, da offene Muster im Editor zu Leistungsproblemen führen können.
Wichtig
Der Editor verfügt über ein eingebautes Limit für die Komplexität eines Regex-Musters. Muster, die zu breit gefasst sind oder stark Platzhalter verwenden, können als ungültige Regex fehlschlagen. Um dies zu vermeiden:
-
Halten Sie Muster kurz und spezifisch.
error-[0-9]\{3\}ist in Ordnung;.*a.*b.*c.*d.*ist es nicht. -
Minimieren Sie Platzhalter. Jedes
.+oder.*vervielfacht die interne Komplexität. Bevorzugen Sie nach Möglichkeit Zeichen-Klassen wie[A-Z]+gegenüber.*. -
Vermeiden Sie lange Alternationen mit Wiederholung. Ein Muster wie
(word1|word2|...|word20){2,}kann das Limit schnell überschreiten. Dies wird verstärkt, wenn die Alternativen mehrere Wörter oder Satzzeichen enthalten, was die Regex-Komplexität erhöht. -
Verankern Sie nach Möglichkeit eine Seite.
^prefix.*ist weitaus kostengünstiger als.*middle.*.
Wenn das Muster abgelehnt wird, versuchen Sie, es gezielter zu gestalten: Beginnen Sie mit einem längeren festen Präfix und schränken Sie es von dort aus ein. Erwägen Sie, die Anzahl der Alternativen zu reduzieren oder diese in separaten Mustern zu behandeln, anstatt alles in einer komplexen Regex zu kombinieren.
Beispiel:
Filtern nach E-Mail-Adressen:
-
Dieses Muster findet Leerzeichen und alle umgebenden Wörter mit potenziell zu vielen Ergebnissen:
.*@.* -
Um die Ergebnisse auf alle E-Mail-Adressen zu begrenzen:
[\\w.+\\-]+@[\\w.+\\-]+ -
Um die Ergebnisse nur auf .com E-Mails zu begrenzen:
[\\w.+\\-]+@[\\w.+\\-]\\.com -
Um die Ergebnisse auf diejenigen mit einer Ziffer in den E-Mail-Adressen zu begrenzen:
[\\w.+\\-]*\\d+[\\w.+\\-]*@[\\w.\\-]+
-
cat|dog: Matcht: „cat“ und „dog“ -
red|blue|green: Matcht: „red“, „blue“, „green“
-
[A-Z]+: Matcht einen oder mehrere Großbuchstaben hintereinander (eine Sequenz). -
[A-Z]{2,}: Matcht jede Reihe von Großbuchstaben (nützlich z. B. zum Matchen von Akronymen oder Strings, die in Großbuchstaben geschrieben sind) -
[0-9]\{4\}: Matcht vierstellige Zahlen, z. B. „1999“, „2003“, „1876“ (auch innerhalb einer Zeichenfolge gefunden, die länger als vier Stellen ist; um die Ergebnisse zu begrenzen, sollte die für die Zukunft geplante Match-Wörter-Option verwendet werden) -
[A-Za-z0-9]+: Matcht jede alphanumerische Zeichenfolge (hello! → hello würde matchen, aber ! ist nicht Teil von [A-Za-z0-9]; 100% → nur 100 würde matchen) -
([A-Za-z]+\\d+|\\d+[A-Za-z]+): Matcht strikt eine Kombination aus Ziffern und Buchstaben, z. B. „user123“, „Admin99“, „Win11“, „5g“, „1080p“ -
[0-9]{2,4}-[A-Z]{2,3}: Matcht Nummernschilder, z. B. „12-XY“, „9999-ABC“
-
\\+[0-9]{1,2}: Matcht „+40“, „+1“ -
\\{version: [0-9]+\\}: Matcht „{version: 12}“, „{version: 13}“ -
C:\\\\[A-Za-z]+: Matcht „C:\\Users“, C:\\Documents, „C:\\Desktop“
-
Standardmäßig wird Regex-filtern als Groß-/Kleinschreibung ignorierend implementiert.
c.at: Matcht: „chat“, „Chat“, „CHAT“ und „coat“, „Coat“, „COAT“ -
Regex-filtern kann mit dem UI-Filter kombiniert werden
Regex-Erfassungsgruppen werden erkannt und die vollständige Query wird hervorgehoben, z. B. wird s(e)g „seg“ hervorheben. Erfassungsgruppen können zum Ersetzen verwendet werden, z. B. kann „Name: Bob“ durch Name: (.*?) gesucht und durch Verwendung einer Rückreferenz auf Jméno: $1 ersetzt werden. Fehlende Rückreferenzen werden kulant behandelt, d. h. die Query Name: (.*?) mit Ersetzen Jméno: $1, Title: $2 wird als Jméno: Bob, Title: $2 ersetzt.
Beispiele für Ersetzen-Rückreferenz:
-
filtern
(\\d+),(\\d+)und Ersetzen$1.$2, um Dezimaltrennzeichen zu normalisieren (z. B. von 5,6 oder 35,949 zu 5.6 oder 35.949) -
filtern
(\\d+)\\.(\\d+)und Ersetzen$1,$2, um 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/$1, um das Datum neu zu formatieren (z. B. von 2025-06-05 zu 05/06/2025) -
filtern
ID-(\\d{3,})und ErsetzenTicket #$1, um die Nummer des Tickets zu extrahieren (z. B. von zu ) -
filtern
(cat|dog)und Ersetzen$1-$1, um den gefundenen Text zu Duplizieren (z. B. von cat zu cat-cat und von dog zu dog-dog) -
Optionale Gruppe: filtern
Hello(, (\\w+))?und ErsetzenHi $1, um Begrüßungen durch Ersetzen von „Hello“ vor Namen oder eigenständig umzuwandeln (z. B. von zu und von zu )