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 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 Converti in tags 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 generali

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

Importa testo

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

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

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

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

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

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

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

  4. errorMessage = "questo deve essere tradotto"

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

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

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

  6. # Nota: Questa è una nota

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

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

    Per importare solo testo tra virgolette e con (en), come Testo (en)' usare 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, 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\[.*\].*

Importa YAML

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

Regole di segmentazione

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

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

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

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

parentesi tonde mancanti

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

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

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.