CAT-Editoren

Regex in Web Editor (TMS)

Inhalte werden von Phrase Language AI maschinell aus dem Englischen übersetzt.

Die Regex-Unterstützung im Web-Editor ist durch die Implementierung der Lucene Regex Engine begrenzt.

Um Regex zu verwenden, aktivieren Sie Match using regex 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 Match case in den Filtereinstellungen, damit diese zwischen Groß- und Kleinschreibung unterscheiden.

Match words (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 abc 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 \b zum Match von exakten Wörtern (funktioniert im Desktop-Editor).

  • \\[1-9] - Rückwärtsreferenzen (\1, \2 usw.), z. B. (\w+)\s+\1 zum Match von doppelten Wörtern wie „hello hello“

  • \(\?=|\(\?!|\(\?&lt;=|\(\?&lt;! - 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“

Verwendung

Grundlegendes Pattern Matching

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“

Quantoren

? - 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.\\-]+

Alternativen (ODER-Operator)

  • cat|dog: Matcht: „cat“ und „dog“

  • red|blue|green: Matcht: „red“, „blue“, „green“

Zeichenklassen und Bereiche

  • [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“

Maskieren reservierter Zeichen . ? * { } [ ] ( ) \" \\

  • \\+[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“

Groß-/Kleinschreibung ignorierendes VS Groß-/Kleinschreibung beachtendes filtern

  • 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 Case sensitive UI-Filter kombiniert werden

Erfassungsgruppen

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 Ersetzen Ticket #$1, um die Nummer des Tickets zu extrahieren (z. B. von ID-45321 zu Ticket #45321)

  • 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 Ersetzen Hi $1, um Begrüßungen durch Ersetzen von „Hello“ vor Namen oder eigenständig umzuwandeln (z. B. von Hello, John zu Hi John und von Hello zu Hi)

War dieser Beitrag hilfreich?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.