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 per l'uso in corrispondenza di modelli con stringhe o corrispondenza di stringhe. La funzionalità è simile a trovare e sostituire operazioni con maggiore complessità e specificità o come metodo per escludere contenuti definiti. Vedi la voce di Wikipedia per una descrizione dettagliata di regexp e una tabella dei caratteri utilizzati.

Per utilizzare più regexp alla volta, inserire un carattere pipeline | tra di esse.

Regexps può essere utilizzato nei campi di filtro, ricerca e sostituzione nel CAT desktop editor, nei campi di origine e destinazione della funzione Cerca contenuto, nella funzione Converti in tag nelle impostazioni di importazione dei file nei e nella personalizzazione delle regole di segmentazione.

Importante

Phrase supporta Java regexp, ma rifiuta 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 per convertire il testo in tag durante l'importazione di file e utilizzare regexp nell'editor per le funzioni di ricerca e sostituzione:

Esempio

Descrizione

<[^>]+>

represents <html_tag>

\{[^\}]+\}

rappresenta {variabile},

\[[^\]]+\]

rappresenta [variabile],

\[\[.+?\]\]

rappresenta [[aa[11]bb]].

\$[^\$]+\$

rappresenta $operator_Name1$.

\d+

rappresenta i 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 vuoto alla fine del segmento

^\s

uno spazio vuoto 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 spazio vuoto

\S\n

un ritorno a capo preceduto da uno spazio vuoto

<[^>]+>|\$[^=]+=

converte variabili php e codice html ($svariable['name'] =)

^\s*\'[^:]+:

converte la chiave del campo di javascript con spazi aggiunti all'inizio della riga ("key") :)

\{\{[^\}]+\}\}|\'[^']+\'

non traduce il contenuto di {{text here}} "{{text here}} e lo converte in tag

Importa testo

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

  1. ## ErrorMessage ##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 ") , 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 è da tradurre"

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

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

    Per importare stringhe msgstr in file PO monolingue utilizzando un filtro TXT, utilizzare regexp: (?<=msgstr ").*(?=")

  6. # Nota: Questa è una nota

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

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

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

Importa JSON

Esempio di struttura JSON:

{
"list": {
        "id": "1",
        "value": "text 1 for translation."
        },
"testo": {
        "id": "2",
        "value": "text 2 for translation."
        },
"menu": {
        "id": "3",
        "value": "text 3 for translation."
         },"array": ["blue","green"],"arrays": [{ "color": "blue", "title": "BLU"
         }, { "color": "green", "title": "GREEN" } ]}
  • per importare ogni valore indipendentemente dal livello, utilizzare: (^|.*/)value

  • per importare solo un valore da un elenco, utilizzare: list/value

  • per importare un valore da un elenco e/o da un menu, utilizzare l'operatore | (OR): list/value|menu/value

  • per importare solo la prima istanza di un valore da un menu, utilizzare: menu\[1\]/value

  • per importare il contenuto di un array JSON seguendo una determinata chiave, utilizzare: (^|.*/)array\[.*\]

  • Per importare il contenuto di un array specifico di oggetti, utilizzare: (^|.*/)arrays\[.*\].*

Importa YAML

Esempio di volo YAML:

titolo: A
testo: tradurre A
categorie:
  titolo: B
  testo: traduzione B
categorie:
  titolo: C
  testo: tradurre C
categorie:
  contenuto:
      titolo: 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.

Utilizzare regexp nei file .SRX è complesso e si consiglia una conoscenza di base dell'uso di espressioni regolari prima di tentare di lavorare con loro.

Le regole nobreak (abbreviazioni, ecc.) e le regole break (fine frase con un punto, ecc.) sono nei file .SRX.

Esempio

Descrizione

[\p{C}]

Carattere di controllo invisibile.

[\p{Z}]

Spazi bianchi

[\p{Lu}]

Una lettera maiuscola che ha una variante minuscola.

[\p{N}]

Qualsiasi tipo di carattere numerico.

\Q... \E

Inizio e fine del preventivo - (\QApprox.\E). Questo è usato per le abbreviazioni.

\t

Tabulatore

\n

Newline

\u2029

Separatore di paragrafo

\u200B

Spazio a larghezza zero

\u3002

Punto e basta ideologico

\ufe52

Piccolo punto e basta

\uff0e

Fullwidth full stop

\uff61

Full stop ideografico a mezza 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 tag (non accoppiato)

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

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

Ordine tag (non accoppiato)

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

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

Ordine tag (non accoppiato)

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

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

Ordine tag (accoppiato)

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*$

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*$

Ordine tag (accoppiato)

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*\{3\&gt;.*\&lt;3\}.*$

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*\{3\&gt;.*\&lt;3\}.*$

Spazi prima dei tag

\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 i tag

(\{[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 tag

\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}\})

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.