Die regulärer Ausdruck (abgekürzt als Regex oder RegEx) ist eine Sequenz von Zeichen, die ein Suchmuster bilden, das hauptsächlich für den Musterabgleich mit Zeichenfolgen oder Zeichenfolge-Matching verwendet wird. Die Funktionalität ähnelt den Such- und Ersetzungsvorgängen mit mehr Komplexität und Spezifität. Im Wikipedia-Eintrag finden Sie eine detaillierte Beschreibung der RegEx und eine Tabelle der verwendeten Zeichen.
Bis mehrere reguläre Ausdrücke gleichzeitig verwenden, einfügen ein Pipelinezeichen |
dazwischen.
Reguläre Ausdrücke können in den Filter-, Such- und Ersetzungsfeldern im CAT Desktop-Editor, in den Quelle- und Ziel-Feldern der Suchen für Inhalt Funktion und für die Funktion, In Tags konvertieren in Datei verwendet werden
Wichtig
Phrase unterstützt Java RegEx, zurückweisen jedoch komplexe reguläre Ausdrücke, um das System vor Überlastung zu schützen. Komplexe reguläre Ausdrücke sind solche mit Quantifizierern (außer Possessiven) für Gruppen, die andere Quantifizierer (außer Possessive) enthalten.
Beispiele für die Konvertierung von Text in Tags beim Importieren von Dateien und die Verwendung RegEx im Editor für Such- und Ersetzungsfunktionen:
Beispiel |
Beschreibung |
---|---|
<[^>]+> |
steht für <html_tag> |
\{[^\}]+\} |
repräsentiert {Variable}, |
\[[^\]]+\] |
stellt [Variable] dar, |
\[\[.+?\]\] |
Stellt [[aa[11]bb]] dar. |
\$[^\$]+\$ |
stellt $operator_Name1$ dar. |
\d+ |
stellt Zahlen dar. Also, [0-9]+ |
[A-Za-z0-9] |
Stellt ein beliebiges alphanumerisches Zeichen dar. |
.+\@.+\..+ |
E-Mail-Adresse name@domain.com |
\d{4}[-]\d{2}[-]\d{2} |
das Datum 2018-08-01 |
\s$ |
ein Leerzeichen am Ende des Segment |
^\s |
Ein Leerzeichen zu Beginn des Segment |
\s\s |
Ein doppelter Leerzeichen |
^\d |
eine Ziffer am Anfang des Segment |
\w+\s\s\w+ |
Ein doppelter Leerzeichen zwischen Wörter |
\s\n |
ein Zeilenumbruch, dem ein beliebiges Leerzeichen Zeichen vorangestellt ist |
\S\n |
Ein Zeilenumbruch, dem ein beliebiges Zeichen ohne Leerzeichen vorangestellt ist |
<[^>]+>|\$[^=]+= |
konvertiert PHP-Variablen und HTML-Code ($svariable['name'] =) |
^\s*\'[^:]+: |
Konvertiert den Feldschlüssel von JavaScript mit hinzugefügt Leerzeichen am Anfang der Zeile ( 'key' :) |
\{\{[^\}]+\}\}|\'[^']+\' |
übersetzt '{{text here}} Inhalt nicht {{text here}} und konvertiert es in Tags |
Beispiele für reguläre Ausdrücke beim Importieren eines spezifisch Textes:
-
## ErrorMessage ##1## Die Zahl muss größer als 0 sein. ##Z##
Bis importieren Text zwischen ##1## und ##Z## ,verwenden Sie RegEx: (?<=##1## ).*(?= ##Z## ,)
-
ErrorMessage ("Die Zahl muss größer als 0 sein.")
Verwenden Sie Bis importieren Text zwischen (" und ") , RegEx:
(?<=\(").*(?="\))
'errorMessage' = 'Die Zahl muss größer als 0 sein.'
Verwenden Sie Bis importieren Text nach dem = -Zeichen und zwischen ' und ' RegEx: (?<=\= ').*(?=' , )
-
errorMessage = "Dies soll übersetztwerden"
Bis importieren Text nach dem =-Zeichen und zwischen 'und'verwenden Sie RegEx:
(?<=\= ").*(?=")
-
msgstr ("Die Zahl muss größer als 0 sein.")
Bis importieren msgstr Zeichenfolgen in einsprachigen PO-Dateien mit einem TXT-Filter verwenden Sie RegEx:
(?<=msgstr ").*(?=")
# Hinweis: Dies ist ein Hinweis
Bis Zeilen auszuschließen, die mit # beginnen, verwenden Sie RegEx: (^[^# , ].*)
-
Werte '126', 'DCeT', 'Text (de)'
Bis importieren nur Text in Anführungszeichen und mit (en),, wie z. B. Text (en)' verwenden Sie RegEx: (?<=')[^']*\(en\)(?=')
Beispiel für eine JSON-Struktur:
{
"list": {
"id": "1",
"value": "Text 1 für die Übersetzung."
},
"text": {
"id": "2",
"value": "Text 2 für die Übersetzung."
},
"menu": {
"id": "3",
"value": "Text 3 für die Übersetzung."
},"array": ["blue","green"],"arrays": [{ "color": "blue", "title": "BLAU"
}, { "color": "green", "title": "GRÜN" } ]}
-
Um jeden Wert unabhängig von der Ebene zu importieren, verwenden Sie: (^|. */)Wert
-
Um nur einen Wert aus einer Liste zu importieren, verwenden Sie: Liste/Wert
-
Um einen Wert aus einer Liste und/oder einem Menü zu importieren, verwenden Sie die Schaltfläche | (ODER)-Operator: Liste/Wert|Menü/Wert
-
Um nur die erste Instanz eines Werts aus einem Menü zu importieren, verwenden Sie: menu\[1\]/value
-
Um die Inhalt eines JSON-Arrays nach einem bestimmten Schlüssel zu importieren, verwenden Sie: (^|. */)array\[.*\]
-
Um die Inhalt eines spezifisch Arrays von Objekten zu importieren, verwenden Sie: (^|. */)Arrays\[.*\].*
Beispiel für YAML-Flie:
Titel: A
text: übersetze A
Kategorien:
Titel: B
Text: übersetzen B
Kategorien:
Titel: C
text: übersetzen C
Kategorien:
Inhalt:
Titel: D
Text: übersetzen D
RegEx für den Import:
-
nur 'translate A' :
Text
-
nur 'Übersetze C':
Kategorien\[2\]/Text
-
nur 'Übersetze D':
Kategorien\[\d+\]/Inhalt[\1\]/Text
Gesamter Text: text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text
Okapi, Java und Unicode werden für Segmentierungsregeln in . SRX-Dateien.
Verwenden RegEx in . SRX-Dateien sind komplex und Grundkenntnisse regulärer Ausdruck Verwendung werden empfohlen, bevor Sie versuchen, mit ihnen zu Arbeit.
Nobreak-Regeln (Abkürzungen usw.) und Break-Regeln (Satzende mit einem Punkt usw.) sind in . SRX-Dateien.
Beispiel
Beschreibung
[\p{C}]
Unsichtbares Steuerzeichen.
[\p{Z}]
Leerzeichen
[\p{Lu}]
Ein Großbuchstabe mit einer Kleinbuchstabenvariante.
[\p{N}]
Jede Art von numerischem Zeichen.
\Q ... \E
Anfang und Ende eines Zitats - (\QApprox.\E). Dies wird für Abkürzungen verwendet.
\t
Tabulator
\n
Newline
\u2029
Absatz-Trennzeichen
\u200B
Leerzeichen mit einer Breite von Null
\u3002
Ideografischer Punkt
\ufe52
Kleiner Punkt
\uff0e
Punkt in voller Breite
\uff61
Ideografischer Punkt mit halber Breite
\ufe56
Kleines Fragezeichen
\uff1f
Fragezeichen in voller Breite
\u203c
Doppeltes Ausrufezeichen
\u2048
Ausrufezeichen der Frage
\u2762
Schweres Ausrufezeichen-Ornament
\u2763
Schweren Herzens Ausrufezeichen-Ornament
\ufe57
Kleines Ausrufezeichen
\uff01
Ausrufezeichen in voller Breite
QA Prüfen
Quelle Regexp
Reguläre Ausdrücke des Ziels
Zusätzliche Nummern in Ziel
\d
\d
Tags Bestellung (ungepaart)
^.*\{1\}.*\{2\}.*$
^.*\{1\}.*\{2\}.*$
Tags Bestellung (ungepaart)
^.*\{1\}.*\{2\}.*\{3\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*$
Tags Bestellung (ungepaart)
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
Tags Bestellung (gepaart)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
Tags Bestellung (gepaart)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$
Leerzeichen vor Tags
\s(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[ 1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[ biu_\^]{1,4}\})
\s(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[ 1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[ biu_\^]{1,4}\})
Leerzeichen nach Tags
(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[ 1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[ biu_\^]{1,4}\})\s
(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[ 1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[ biu_\^]{1,4}\})\s
Kein Platz vor Tags
\S(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[ 1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[ biu_\^]{1,4}\})
\S(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[ 1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[ biu_\^]{1,4}\})
Fehlend eckigen Klammern
[^\[\]]*\[[^\[\]]*\][^\[\]]*
[^\[\]]*\[[^\[\]]*\][^\[\]]*
Fehlend runde Halterungen
[^\(\)]*\([^\(\)]*\)[^\(\)]*
[^\(\)]*\([^\(\)]*\)[^\(\)]*