Utilità di importazione

Regexp (TMS)

Contenuti tradotti automaticamente dall'inglese con Phrase Language AI.

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 usati.

Per usare più regexp alla volta, inserisci tra di esse un carattere pipeline |.

Le regexp possono essere utilizzate nei filtri, cerca e sostituisci nel CAT editor desktop, nei campi di origine e destinazione della funzione Cerca contenuto, nella funzione Converti in tags nelle impostazioni Importa file e nella personalizzazione delle regole di segmentazione.

Consiglio

I chatbot IA possono essere molto efficaci nel generare e verificare regexp.

Usa Strumenti come Regex101 per testare regexp con input diversi.

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 generali

Esempi di conversione del 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 {variabile},

\[[^\]]+\]

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}

la data 2018-08-01

\s$

uno spazio bianco 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 qualsiasi carattere spazio

\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

\{\{[^\}]+\}\}

rappresenta il testo tra {{}} parentesi graffe

\([^\)]+\)

rappresenta il testo tra parentesi graffe ()

\^[^\^]+\^

rappresenta il testo tra ^ segni

\@[^\@]+\@

rappresenta il testo tra @ segni

\^[^\^\?]+\?

rappresenta il testo tra i segni ^ e ?

\'[^']+\'

rappresenta il testo tra gli apostrofi ""

\"[^"]+\"

rappresenta il testo tra virgolette ""

\%[^\%]+\%

rappresenta il testo tra % simboli

\$\{[^}]*\}

rappresenta il testo compreso tra ${ e }, ad es. ${variable}

$[a-zA-Z0-9\-_]+

rappresenta una stringa che comincia con $, ad es. $appName

(?&lt;=\: ").*(?=")

rappresenta il testo tra virgolette doppie dopo i due punti e lo spazio, ad esempio il valore nella stringa "chiave": "valore"

(?&lt;=\: ').*(?=')

rappresenta il testo tra virgolette singole dopo i due punti e lo spazio, ad es. JohnDoe nella stringa utente: 'JohnDoe'

(?&lt;=\=).*(?=)

rappresenta il testo dopo un segno di uguale e senza spazio, ad esempio chiave = valore

(.*)=

rappresenta il testo prima di un segno di uguale

[^=]*$

rappresenta il testo dopo un segno di uguale

\/\/\S*

rappresenta collegamenti ipertestuali. Also, https:\/\/\S*

</?mrk[^&gt;]*>

rappresenta tags mrk aperti e chiusi HTML/XML, ad esempio <mrk ID="abc"> e </mrk>

\b[\p{Lu}]+\b

rappresenta parole intere in lettere maiuscole

Importa TXT

Nota

Poiché i file TXT in TMS vengono elaborati riga per riga, determinate espressioni regolari che lavorano in altri ambienti potrebbero non funzionare come previsto.

Esempi di espressioni regolari durante l'importazione di un testo specifico:

  1. ## Messaggio d'errore ##1## Il numero deve essere superiore a 0. ##Z##

    Per importare testo tra ##1## e ##Z## , usa regexp: (?<=##1## ).*(?= ##Z##)

  2. ErrorMessage ("Il numero deve essere superiore a 0.")

    Per importare testo tra (" e ") , usa regexp: (?<=\(").*(?="\))

  3. 'errorMessage' = 'Il numero deve essere superiore a 0.'

    Per importare testo dopo il segno = e tra " e ' , usare regexp: (?<=\= ').*(?=')

  4. errorMessage = "questo è da tradurre"

    Per importare testo dopo il segno = e tra “e” usare regexp: (?<=\= ").*(?=")

  5. msgstr ("Il numero deve essere superiore a 0.")

    Per importare Strings msgstr in file PO monolingue usando un filtro TXT, usare regexp: (?<=msgstr ").*(?=")

  6. # Nota: Questa è una nota

    Per escludere righe che iniziano con # , usa regexp: (^[^#].*)

  7. valori '126', 'DCeT', 'Text (en)'

    Per importare solo testo tra virgolette e con (en), come Testo (en)' usa regexp: (?<=')[^']*\(en\)(?=')

Importa JSON

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, usa: (^|.*/)value

  • per importare solo un valore da un elenco, usare: elenco/valore

  • per importare un valore da un elenco e/o 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\[.*\].*

Importa YAML

Esempio di file YAML:

title: A
text: translate A
categories:
  title: B
  text: translate B
categories:
  title: C
  text: translate C
categories:
  content:
      title: D
      text: translate 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

Regole di segmentazione

Okapi, Java e Unicode sono usati per le regole di segmentazione nei file .SRX.

L'utilizzo di regexp nei file .SRX è complesso ed è consigliabile una conoscenza di base dell'usare delle espressione regolare prima di tentare di lavoro.

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 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 larghezza zero

\u3002

Punto intero ideografico

\ufe52

Piccolo punto e basta

\uff0e

Punto intero a larghezza intera

\uff61

Punto intero 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 larghezza intera

`[\u0080-\uFFFF]+`

Caratteri dall'intervallo Unicode \u0080 a \uFFFF

`[\u00a8\u00b9\u00c4]+`

Una o più occorrenze dei caratteri Unicode specificati tra parentesi quadre, ad es. \u00a8 + \u00b9 + \u00c4

Controlli QA personalizzati comuni

Controllo QA

Origine Regexp

Destinazione Regexp

Numeri aggiuntivi nella destinazione

\d 

\d 

Ordine tags (spaiato, per i segmenti con 3 tags).

Regola la regexp in base al numero richiesto di tags.

^.*\{1\}.*\{2\}.*\{3\}.*$

^.*\{1\}.*\{2\}.*\{3\}.*$

Ordine tags (accoppiato, per i segmenti con 3 tags).

Regola la regexp in base al numero richiesto di tags.

^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$

^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$

Spazi prima dei 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}\})

Spazi dopo 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

Nessuno spazio prima dei 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}\})

Caratteri non spazi dopo tags abbinati

((\{[1-9][0-9]*>)|(<[1-9][0-9]*\}))\S

((\{[1-9][0-9]*>)|(<[1-9][0-9]*\}))\S

parentesi quadre mancanti

[^\[\]]*\[[^\[\]]*\][^\[\]]* 

[^\[\]]*\[[^\[\]]*\][^\[\]]* 

Mancano le parentesi tonde

[^\(\)]*\([^\(\)]*\)[^\(\)]* 

[^\(\)]*\([^\(\)]*\)[^\(\)]* 

Questo articolo ti è stato utile?

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.