L'espressione regolare (abbreviata in regex o regexp) è una sequenza di caratteri che formano un modello di ricerca principalmente da usare nella corrispondenza di modelli con Strings o stringhe. La funzionalità è simile per trovare e sostituire operazioni con maggiore complessità e specificità o come metodo per escludere contenuti definiti. Vedi la voce wikipedia per una descrizione dettagliata della regexp e una tabella dei caratteri utilizzati.
Per usare più regexp alla volta, inserire tra loro un carattere pipeline |
.
Le regexp possono essere utilizzate nei campi filtrare, cercare e sostituire nel CAT editor desktop, nei campi di origine e destinazione della funzione Cerca contenuto, nella funzione nelle impostazioni Importa file e nella personalizzazione delle regole di segmentazione.
I chatbot IA possono essere molto efficaci nel generare e verificare regexp.
Importante
phrase supporta la regexp Java, ma rifiuterà espressioni regolari complesse per proteggere il sistema dal sovraccarico. Le regexp complesse sono quelle con quantificatori (eccetto i possessivi) su gruppi che contengono altri quantificatori (eccetto i possessivi).
Esempi di conversione di testo in tags durante l'importazione di file e l'utilizzo di regexp nell'editor per le funzioni di ricerca e sostituzione:
Esempio |
Descrizione |
---|---|
<[^>]+> |
represents <html_tag> |
\{[^\}]+\} |
rappresenta {variable}, |
\[[^\]]+\] |
rappresenta [variabile], |
\[\[.+?\]\] |
rappresenta [[aa[11]bb]]. |
\$[^\$]+\$ |
represents $operator_Name1$. |
\d+ |
rappresenta numeri. Inoltre, [0-9]+ |
[A-Za-z0-9] |
rappresenta qualsiasi carattere alfanumerico. |
.+\@.+\..+ |
indirizzo e-mail name@domain.com |
\d{4}[-]\d{2}[-]\d{2} |
Data 2018-08-01 |
\s$ |
uno spazio alla fine del segmento |
^\s |
uno spazio all'inizio del segmento |
\s\s |
un doppio spazio |
^\d |
una cifra all'inizio del segmento |
\w+\s\s\w+ |
un doppio spazio tra le parole |
\s\n |
un ritorno a capo preceduto da uno carattere vuoto |
\S\n |
un ritorno a capo preceduto da qualsiasi carattere diverso dagli spazi |
<[^>]+>|\$[^=]+= |
converte variabili PHP e codice html ($svariable['name'] =) |
^\s*\'[^:]+: |
converte la chiave del campo di javascript con spazi aggiunti all'inizio della riga ("chiave") |
\{\{[^\}]+\}\}|\'[^']+\' |
non traduce il contenuto {{text here}} di {{text here}} e lo converte in tags |
Esempi di espressioni regolari durante l'importazione di un testo specifico:
-
## Messaggio di errore ##1## Il numero deve essere superiore a 0. ##Z##
Per importare testo tra ##1## e ##Z## , usare regexp:
(?<=##1## ).*(?= ##Z##)
-
ErrorMessage ("Il numero deve essere superiore a 0.")
Per importare testo tra (" e ") , usare regexp:
(?<=\(").*(?="\)
-
'errorMessage' = 'Il numero deve essere superiore a 0.'
Per importare testo dopo il segno = e tra " e " , usare regexp:
(?<=\= ").*(?=")
-
errorMessage = "questo deve essere tradotto"
Per importare testo dopo il segno = e tra "e" usare regexp:
(?<=\= ").*(?=")
-
msgstr ("Il numero deve essere superiore a 0.")
Per importare msgstr Strings in file PO monolingue usando un filtro TXT, usare regexp:
(?<=msgstr ").*(?=")
-
# Nota: Questa è una nota
Per escludere righe che iniziano con # , usare regexp:
(^[^#].*)
-
valori '126', 'DCeT', 'Text (en)'
Per importare solo testo tra virgolette e con (en), come Testo (en)' usare regexp:
(?<=')[^']*\(en\)(?=')
Esempio di struttura JSON:
{ "elenco": { "id": "1", "value": "text 1 for translation." }, "text": { "id": "2", "value": "text 2 for translation." }, "menu": { "id": "3", "value": "text 3 for translation." },"array": ["blue","green"],"arrays": [{ "color": "blue", "title": "BLUE" }, { "color": "green", "title": "VERDE" } ]}
-
per importare ogni valore indipendentemente dal livello, usare:
(^|.*/)value
-
per importare solo un valore da un elenco, usare:
elenco/valore
-
per importare un valore da un elenco e/o da un menu, usare l’operatore | (OR):
elenco/valore|menu/valore
-
per importare solo la prima istanza di un valore da un menu, usare:
menu\[1\]/value
-
per importare il contenuto di un array JSON seguendo una determinata chiave, usare:
(^|.*/)array\[.*\]
-
per importare il contenuto di un array specifico di oggetti, usare:
(^|.*/)arrays\[.*\].*
Esempio di file YAML:
title: A testo: traduzione A categorie: title: B testo: traduzione B categorie: title: C testo: traduzione C categorie: contenuto: title: D testo: traduzione D
regexp per l'importazione:
-
solo 'traduci A' :
testo
-
solo 'traduci C':
categorie\[2\]/testo
-
solo 'traduci D':
categorie\[\d+\]/content[\1\]/text
-
tutto il testo:
text|categorie\[\d+\]/text|categorie\[\d+\]/content[\d+\]/text
Okapi, Java e Unicode sono utilizzati per le regole di segmentazione nei file .SRX.
L'utilizzo di regexp nei file .SRX è complesso e si consiglia una conoscenza di base dell'usare delle espressione regolare prima di provare a lavoro con loro.
Le regole di interruzione (abbreviazioni, ecc.) e le regole di interruzione (fine frase con un punto, ecc.) sono nei file .SRX.
Esempio |
Descrizione |
---|---|
[\p{C}] |
Carattere di controllo invisibile. |
[\p{Z}] |
Spazi |
[\p{Lu}] |
Una lettera maiuscola che ha una variante minuscola. |
[\p{N}] |
Qualsiasi tipo di carattere numerico. |
\Q ... \E |
Inizio e fine di un preventivo - (\QApprox.\E). Questo è usato per le abbreviazioni. |
\t |
Tabulator |
\n |
Newline |
\u2029 |
Separatore di paragrafo |
\u200B |
Spazio a larghezza zero |
\u3002 |
Punto e basta ideologico |
\ufe52 |
Piccolo punto e basta |
\uff0e |
Fullwidth punto e basta |
\uff61 |
Full stop ideografico a metà larghezza |
\ufe56 |
Piccolo punto interrogativo |
\uff1f |
Punto interrogativo a larghezza intera |
\u203c |
Doppio punto esclamativo |
\u2048 |
Punto esclamativo della domanda |
\u2762 |
Ornamento pesante del punto esclamativo |
\u2763 |
Ornamento pesante del punto esclamativo del cuore |
\ufe57 |
Piccolo punto esclamativo |
\uff01 |
Punto esclamativo a tutta larghezza |
Controllo QA |
Origine Regexp |
Destinazione Regexp |
---|---|---|
Numeri aggiuntivi nella destinazione |
|
|
Ordine tags (spaiato, per i segmenti con 3 tags). Regola la regexp in base al numero richiesto di tags. |
|
|
Ordine tags (accoppiato, per segmenti con 3 tags). Regola la regexp in base al numero richiesto di tags. |
|
|
Spazi prima dei tags |
|
|
Spazi dopo tags |
|
|
Nessuno spazio prima dei tags |
|
|
Caratteri non spazi dopo tags abbinati |
|
|
parentesi quadre mancanti |
|
|
parentesi tonde mancanti |
|
|