Der reguläre Ausdruck (abgekürzt als Regex oder Regex) ist eine Zeichenfolge, die ein Suchmuster bildet, hauptsächlich zur Verwendung beim Musterabgleich mit Strings oder beim Zeichenkettenabgleich. Die Funktionalität ist ähnlich wie bei Finden und Ersetzen Operationen, jedoch mit mehr Komplexität und Spezifität, oder als Methode zum Ausschluss definierter Inhalte. Siehe den Wikipedia Eintrag für eine detaillierte Beschreibung von regulären Ausdrücken und eine Tabelle der verwendeten Zeichen.
Um mehrere reguläre Ausdrücke gleichzeitig zu verwenden, fügen Sie ein Pipeline-Zeichen | zwischen ihnen ein.
Reguläre Ausdrücke können in den Filter-, Such- und Ersetzungsfeldern im CAT Editor, in den Ausgangssprache- und Zielsprache-Feldern der Suche nach Content-Funktion, für die Funktion in Dateiimporteinstellungen und zur Anpassung von Segmentierungsregeln verwendet werden. Der Konverter und CAT Desktop Editor verwenden Java reguläre Ausdrücke, während der CAT Web Editor und die Suche in TMS die Lucene reguläre Ausdrücke Engine verwenden.
Tipp
KI-Chatbots können sehr effektiv beim Generieren und Überprüfen von regulären Ausdrücken sein.
Verwenden Sie Tools wie Regex101, um reguläre Ausdrücke mit verschiedenen Eingaben zu testen.
Wichtig
Phrase unterstützt Java reguläre Ausdrücke, wird jedoch komplexe reguläre Ausdrücke zurückweisen, um das System vor Überlastung zu schützen. Komplexe reguläre Ausdrücke sind solche mit Quantifizierern (außer possessiven) in Gruppen, die andere Quantifizierer (außer possessiven) enthalten.
Beispiele für das Konvertieren von Text in Tags beim Importieren von Dateien und die Verwendung von regulären Ausdrücken im Desktop-Editor für Filter-, Such- und Ersetzungsfunktionen:
|
Beispiel |
Beschreibung |
|---|---|
|
<[^>]+> |
repräsentiert <html_tag> |
|
\{[^\}]+\} |
repräsentiert {variable}, |
|
\[[^\]]+\] |
repräsentiert [variable], |
|
\[\[.+?\]\] |
repräsentiert [[aa[11]bb]]. |
|
\$[^\$]+\$ |
repräsentiert $operator_Name1$. |
|
\d+ |
repräsentiert Zahlen. Auch, [0-9]+ |
|
[A-Za-z0-9] |
repräsentiert jedes alphanumerische Zeichen. |
|
.+\@.+\..+ |
E-Mail-Adresse name@domain.com |
|
\d{4}[-]\d{2}[-]\d{2} |
das Datum 2018-08-01 |
|
\s$ |
ein Leerzeichen am Ende des Segments |
|
^\s |
ein Leerzeichen am Anfang des Segments |
|
\s\s |
ein doppeltes Leerzeichen |
|
^\d |
eine Ziffer am Anfang des Segments |
|
\w+\s\s\w+ |
ein doppeltes Leerzeichen zwischen Wörtern |
|
\s\n |
ein Zeilenumbruch, dem ein Leerzeichen vorangeht |
|
\S\n |
ein Zeilenumbruch, dem ein Nicht-Leerzeichen vorangeht |
|
<[^>]+>|\$[^=]+= |
konvertiert PHP-Variablen und HTML-Code ($svariable['name'] =) |
|
^\s*\'[^:]+: |
konvertiert Javascript-Feldschlüssel mit hinzugefügten Leerzeichen am Anfang der Zeile ('key' :) |
|
\{\{[^\}]+\}\}|\'[^']+\' |
übersetzt nicht {{text here}} '{{text here}} Inhalt und konvertiert es in Tags |
|
\{\{[^\}]+\}\} |
repräsentiert Text zwischen {{}}-Klammern |
|
\([^\)]+\) |
repräsentiert Text zwischen ()-Klammern |
|
\^[^\^]+\^ |
repräsentiert Text zwischen ^-Zeichen |
|
\@[^\@]+\@ |
repräsentiert Text zwischen @-Zeichen |
|
\^[^\^\?]+\? |
repräsentiert Text zwischen ^- und ?-Zeichen |
|
\'[^']+\' |
repräsentiert Text zwischen ' '-Apostrophen |
|
\"[^\"]+\" |
repräsentiert Text zwischen \"\" Anführungszeichen |
|
\%[^\%]+\% |
repräsentiert Text zwischen % Symbolen |
|
\$\{[^}]*\} |
repräsentiert Text zwischen ${ und }, z. B. ${variable} |
|
\$[a-zA-Z0-9\-_]+ |
repräsentiert eine Zeichenfolge, die mit $ beginnt, z. B. $appName |
|
(?<=\: ").*(?=") |
repräsentiert Text innerhalb von doppelten Anführungszeichen nach einem Doppelpunkt und Leerzeichen, z. B. |
|
(?<=\: ').*(?=') |
repräsentiert Text innerhalb von einfachen Anführungszeichen nach einem Doppelpunkt und Leerzeichen, z. B. |
|
(?<=\=).*(?=) |
repräsentiert Text nach einem Gleichheitszeichen und ohne Leerzeichen, z. B. Key=Zeichenfolge |
|
(.*)= |
repräsentiert Text vor einem Gleichheitszeichen |
|
=(.*) |
repräsentiert Text nach einem Gleichheitszeichen |
|
\/\/\S* |
repräsentiert Hyperlinks. Also, https:\/\/\S* |
|
</?mrk[^>]*> |
repräsentiert HTML/XML öffnende und schließende |
Hinweis
Da TXT-Dateien im TMS zeilenweise verarbeitet werden, funktionieren bestimmte reguläre Ausdrücke, die in anderen Umgebungen funktionieren, möglicherweise nicht wie erwartet.
Beispiele für reguläre Ausdrücke beim Importieren eines bestimmten Textes:
-
## Fehlermeldung ##1## Die Zahl muss größer als 0 sein. ##Z##
Um Text zwischen ##1## und ##Z## zu importieren, verwende Regex:
(?<=##1## ).*(?= ##Z##) -
Fehlermeldung ("Die Zahl muss größer als 0 sein.")
Um Text zwischen (" und ") zu importieren, verwende Regex:
(?<=\(").*(?="\)) -
'fehlermeldung' = 'Die Zahl muss größer als 0 sein.'
Um Text nach dem = Zeichen und zwischen ' und ' zu importieren, verwende Regex:
(?<=\= ').*(?=') -
fehlermeldung = "dies ist zu übersetzen"
Um Text nach dem = Zeichen und zwischen 'und' zu importieren, verwende Regex:
(?<=\= \").*(?=\") -
msgstr ("Die Zahl muss größer als 0 sein.")
Um msgstr-Strings in monolingualen AB-Dateien mit einem TXT-Filter zu importieren, verwenden Sie den regulären Ausdruck:
(?<=msgstr ").*(?=") -
# Hinweis: Dies ist ein Hinweis
Um Zeilen auszuschließen, die mit # beginnen, verwenden Sie den regulären Ausdruck:
(^[^#].*) -
Werte '126', 'DCeT', 'Text (en)'
Um nur Text in Anführungszeichen und mit (en), wie Text (en) zu importieren, verwenden Sie den regulären Ausdruck:
(?<=')[^']*\(en\)(?=')
Beispiel für JSON-Struktur:
{
"liste": {
"id": "1",
"wert": "Text 1 zur Übersetzung."
},
"text": {
"id": "2",
"value": "Text 2 zur Übersetzung."
},
"menu": {
"id": "3",
"value": "Text 3 zur Übersetzung."
},"array": ["blue","green"],"arrays": [{ "color": "blue", "title": "BLUE"
}, { "color": "green", "title": "GREEN" } ]}
-
um jeden Wert unabhängig von der Ebene zu importieren, verwende:
(^|.*/)value -
um nur einen Wert aus einer Liste zu importieren, verwende:
list/value -
um einen Wert aus einer Liste und/oder einem Menü zu importieren, verwende den | (ODER) Operator:
list/value|menu/value -
um nur die erste Instanz eines Wertes aus einem Menü zu importieren, verwende:
menu\[1\]/value -
um den Inhalt eines JSON-Arrays nach einem bestimmten Schlüssel zu importieren, verwende:
(^|.*/)array\[.*\] -
um den Inhalt eines spezifischen Arrays von Objekten zu importieren, verwende:
(^|.*/)arrays\[.*\].*
YAML-Dateibeispiel:
title: A
text: übersetze A
categories:
title: B
text: übersetze B
categories:
title: C
text: übersetze C
categories:
content:
title: D
text: übersetze D
Regulärer Ausdruck zum Importieren:
-
nur 'übersetze A' :
text -
nur 'übersetze C':
categories\[2\]/text -
nur 'übersetze D':
categories\[\d+\]/content[\1\]/text -
alle Texte:
text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text
Okapi, Java und Unicode werden für Segmentierungsregeln in .SRX-Dateien verwendet.
Die Verwendung von regulären Ausdrücken in .SRX-Dateien ist komplex, und es wird empfohlen, grundlegende Kenntnisse im Umgang mit regulären Ausdrücken zu haben, bevor man versucht, damit einen Job zu erledigen.
Nobreak-Regeln (Abkürzungen usw.) und Break-Regeln (Satzende mit einem Punkt usw.) befinden sich in .SRX-Dateien.
|
Beispiel |
Beschreibung |
|---|---|
|
[\p{C}] |
Unsichtbares Steuerzeichen. |
|
[\p{Z}] |
Leerzeichen |
|
[\p{Lu}] |
Ein Großbuchstabe, der eine Kleinbuchstabenvariante hat. |
|
[\p{N}] |
Jede Art von numerischem Zeichen. |
|
\Q ... \E |
Anfang und Ende eines Zitats - (\QUngef.\E). Dies wird für Abkürzungen verwendet. |
|
\t |
Tabulator |
|
\n |
Neue Zeile |
|
\u2029 |
Absatztrenner |
|
\u200B |
Nullbreiten-Leerzeichen |
|
\u3002 |
Ideografischer Punkt |
|
\ufe52 |
Kleiner Punkt |
|
\uff0e |
Vollbreiter Punkt |
|
\uff61 |
Halbbreiter ideografischer Punkt |
|
\ufe56 |
Kleines Fragezeichen |
|
\uff1f |
Vollbreites Fragezeichen |
|
\u203c |
Doppeltes Ausrufezeichen |
|
\u2048 |
Frage Ausrufezeichen |
|
\u2762 |
Schweres Ausrufezeichen-Ornament |
|
\u2763 |
Schweres Herz-Ausrufezeichen-Ornament |
|
\ufe57 |
Kleines Ausrufezeichen |
|
\uff01 |
Vollbreites Ausrufezeichen |
|
`[\u0080-\uFFFF]+` |
Zeichen aus dem Unicode-Bereich \u0080 bis \uFFFF |
|
`[\u00a8\u00b9\u00c4]+` |
Ein oder mehrere Vorkommen der angegebenen Unicode-Zeichen innerhalb der eckigen Klammern, z. B. \u00a8 + \u00b9 + \u00c4 |
|
QA-Prüfung |
Regulärer Ausdruck – Ausgangssprache |
Regulärer Ausdruck – Zielsprache |
|---|---|---|
|
Zusätzliche Zahlen im Ziel |
|
|
|
Tag-Reihenfolge (ungepaart, für Segmente mit 3 Tags). Passen Sie den regulären Ausdruck an die erforderliche Anzahl von Tags an. |
|
|
|
Tag-Reihenfolge (gepaart, für Segmente mit 3 Tags). Passen Sie den regulären Ausdruck an die erforderliche Anzahl von Tags an. |
|
|
|
Leerzeichen vor Tags |
|
|
|
Leerzeichen nach Tags |
|
|
|
Kein Leerzeichen vor Tags |
|
|
|
Nicht-Leerzeichen nach gepaarten Tags |
|
|
|
Fehlende eckige Klammern |
|
|
|
Fehlende runde Klammern |
|
|
|
Verwenden Sie die folgenden regulären Ausdrücke, um auf die gleiche Anzahl identischer Dezimalzahlen zu prüfen, wobei das entsprechende sprachspezifische Dezimaltrennzeichen verwendet wird. |
|
|