Utilitários de importação

Regexp (TMS)

O conteúdo de toda a Central de Ajuda é traduzido automaticamente de inglês pelo Phrase Language AI.

A expressão regular (abreviada como regex ou regexp) é uma seqüência de caracteres que formam um padrão de pesquisa principalmente para usar em correspondências de padrão com Strings ou string correspondências. A funcionalidade é semelhante a encontrar e substituir operações com mais complexidade e especificidade ou como um método para excluir conteúdo definido. Veja a entrada wikipedia para obter uma descrição detalhada de expressões regulares e uma tabela de caracteres usados.

Para usar vários expressões regulares de cada vez, insira um caractere de pipeline | entre eles.

As expressões regulares podem ser usadas no campo filtrar, pesquisar e substituir no editor para desktop CAT, nos campos texto original e tradução do funcional Pesquisar conteúdo, no recurso Converter em tags nas configurações importar arquivos e para personalizar regras de segmentação.

Dica

Os chatbots da IA podem ser muito efetivos na geração e verificação de expressões regulares.

Use Ferramentas como Regex101 para testar expressões regulares com diferentes entradas.

Importante

O phrase aceita o regexp Java, mas rejeitará expressões regulares complexas para proteger o sistema de sobrecargas. Regexps complexos são aqueles com quantificadores (exceto possessivos) em grupos que contêm outros quantificadores (exceto possessivos).

Exemplos gerais

Exemplos de converter texto em tags ao importar arquivos e usar expressões regulares no editor para pesquisar e substituir funções:

Exemplo

Descrição

<[^>]+>

represents <html_tag>

\{[^\}]+\}

representa {variável},

\[[^\]]+\]

representa [variável],

\[\[.+?\]\]

represents [[aa[11]bb]].

\$[^\$]+\$

representa $operator_Name1$.

\d+

representa números. Além disso, [0-9]+

[A-Za-z0-9]

representa qualquer caractere alfanumérico.

.+\@.+\..+

Endereço de e-mail name@domain.com

\d{4}[-]\d{2}[-]\d{2}

a data 2018-08-01

\s$

um espaço em branco no final do segmento

^\s

um espaço em branco no início do segmento

\s\s

um duplo espaço em branco

^\d

um dígito no início do segmento

\w+\s\s\w+

um duplo espaço em branco entre palavras

\s\n

uma nova linha precedida por qualquer caractere de espaço em branco

\S\n

uma nova linha precedida por qualquer caractere de espaço em branco

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

converte variáveis PHP e código HTML ($svariable['name'] =)

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

converte a chave de campo javascript com espaços em branco adicionados no início da linha ( 'chave' :)

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

não traduz o conteúdo de {{text here}}{{text here}} e converte-o em tags

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

representa o texto entre os chaves {{}}

\([^\)]+\)

representa o texto entre () chaves

\^[^\^]+\^

representa o texto entre ^ marcas

\@[^\@]+\@

representa o texto entre @ marcas

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

representa o texto entre os marcadores ^ e ?

\'[^']+\'

representa o texto entre os apóstrofos '

\"[^"]+\"

representa o texto entre os marcadores de aspas ""

\%[^\%]+\%

representa o texto entre % símbolos

\$\{[^}]*\}

representa o texto entre ${ e }, p.ex., ${variable}

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

representa uma string que começa com $, p.ex.: $appName

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

representa texto dentro de aspas duplas após um colon e espaço, p.ex., valor na string "chave":"valor"

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

representa o texto dentro de aspas únicas após um colon e espaço, p.ex., JohnDoe no usuário string: 'JohnDoe'

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

representa o texto após um sinal de equals e sem espaço, p.ex., chave=value

(.*)=

representa o texto antes de um sinal de equals

[^=]*$

representa o texto após um sinal de igualdade

\/\/\S*

representa hiperlinks. Also, https:\/\/\S*

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

representa tags mrk abertos e fechados HTML/XML, p.ex., <mrk ID="abc"> e </mrk>

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

representa palavras inteiras em maiúscula

Importar TXT

Nota

Desde que os arquivos TXT no TMS são processados linha por linha, algumas expressões regulares que trabalham em outros ambientes podem não funcionar como esperado.

Exemplos de expressões regulares ao importar um texto específico:

  1. ## ErrorMessage ##1## O número deve ser maior que 0. ##Z##

    Para importar texto entre ##1## e ##Z## ,use regexp: (?<=#1## ). *(?= ##Z##)

  2. Mensagem de erro ("O número deve ser maior que 0.")

    Para importar texto entre (" e ") , use regexp: (?<= \("). *(?=" \))

  3. 'errorMessage' = 'O número deve ser maior que 0.'

    Para importar texto após o caractere = e entre ' e ' , use regexp: (?<= \= ').*(?=')

  4. errorMensagem = "Este é para ser traduzido"

    Para importar o texto após o sinal = e entre "e" use regexp: (?<= \= "). *(?=")

  5. msgstr ("O número deve ser maior que 0.")

    Para importar msgstr Strings em arquivos OS monolíngues usando um filtro TXT, use regexp: (?<=msgstr ").*(?=")

  6. Nota: Esta é uma nota

    Para excluir linhas começando com # , use regexp: (^[^#]. *)

  7. valores '126', 'DCeT', 'Text (pt)'

    Para importar apenas nos orçamentos e com (pt) como Texto (pt)' use regexp: (?<=')[^'] *\(pt\)(?=')

Importar JSON

Exemplo de estrutura JSON:

{
"list": {
        "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": "GROEN" } ]}
  • para importar todos os valores independentemente do nível, use: (^.*/)valor

  • para importar apenas um valor de uma lista, use: lista/valor

  • para importar um valor de uma lista e/ou menu, use o operador | (OR): lista/valor |menu/value

  • para importar apenas a primeira instância de um valor de um menu, use: menu\[1\]/value

  • para importar o conteúdo de uma matriz JSON após uma determinada chave, use: (^.*/)array\[.*\]

  • para importar o conteúdo de um conjunto específico de objetos, use: (^.*/)arrays\[.*\].*

Importar YAML

Exemplo de arquivo YAML:

Título: A
text: translate A
categories:
  Título: B
  text: translate B
categories:
  Título: C
  text: translate C
categories:
  content:
      Título: D
      text: translate D

expressões regulares para importação:

  • apenas 'translate A' : texto

  • apenas 'translate C': categories\[2\]/text

  • apenas 'translate D': categories \[\d+\]/content[\1\]/text

  • todos os textos: text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text

Regras de segmentação

Okapi, Java e Unicode são usados para regras de segmentação em arquivos .SRX.

Usar expressões regulares em arquivos .SRX é complexo e é recomendável ter conhecimentos básicos sobre o usar expressão regular antes de tentar trabalho com eles.

Regras nobre (abreviações, etc.) e regras de quebra (fim da sentença com um ponto, etc.) estão em arquivos .SRX.

Exemplo

Descrição

[\p{C}]

Caractere de controle invisível.

[\p{Z}]

Espaço em branco

[\p{Lu}]

Uma letra maiúscula que tem uma variante com letra minúscula.

[\p{N}]

Qualquer caractere numérico.

\Q ... \E

Início e fim de uma cotação - (\QApprox.\E). Isso é usado para abreviações.

\t

Tabulador

\n

Nova linha

\u2029

Separador de parágrafo

\u200B

Espaço de largura zero

\u3002

Stop completo ideográfico

\ufe52

Pequeno stop completo

\uff0e

Stop completo de largura completa

\uff61

Stop completo ideográfico de metade da largura

\ufe56

Pequeno sinal de pergunta

\uff1f

Marca de pergunta de largura completa

\u203c

Marca de exclamação dupla

\u2048

Marca de exclamação de pergunta

\u2762

Ornamento de marca de exclamação pesada

\u2763

Ornamento de marca de exclamação de coração pesado

\ufe57

Marca de exclamação pequena

\uff01

Marca de exclamação de largura completa

`[\u0080-\uFFFF]+`

Caracteres do intervalo \u0080 para \uFFFF do Unicode

`[\u00a8\u00b9\u00c4]+`

Uma ou mais ocorrências dos caracteres Unicode especificados dentro dos colchetes, p.ex. \u00a8 + \u00b9 + \u00c4

Verificações de Controle de qualidade personalizadas comuns

Verificação de controle de qualidade

Texto original Regex

Expressão regular na tradução

Números adicionais na tradução

\d 

\d 

Pedido de tags (não emparelhado, para segmentos com 3 tags).

Ajuste o regexp de acordo com o número necessário de tags.

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

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

Pedido de tags (parecido, para segmentos com 3 tags).

Ajuste o regexp de acordo com o número necessário de tags.

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

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

Espaços antes dos 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}\})

Espaços após 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

Não há espaço antes dos códigos

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

Caracteres sem espaço em branco após tags emparelhados

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

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

Colchetes de quadrado ausentes

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

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

Colchetes redondos ausentes

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

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

Esse artigo foi útil?

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.