A expressão regular (abreviada como regex ou regex) é uma sequência de caracteres que forma um padrão de busca, principalmente para uso em correspondência de padrões com strings ou correspondência de strings. A funcionalidade é semelhante a operações de encontrar e substituir com mais complexidade e especificidade ou como um método para excluir conteúdo definido. Veja a entrada da wikipedia para uma descrição detalhada de regex e uma tabela de caracteres utilizados.
Para usar múltiplos regex ao mesmo tempo, insira um caractere de pipeline | entre eles.
Regex pode ser usado nos campos de filtrar, buscar e substituir no editor CAT, nos campos de origem e destino da função de busca por conteúdo, para a função de nas configurações de importação de arquivo e para personalizar regras de segmentação. O conversor e o editor CAT desktop usam Java regex, enquanto o editor CAT web e a busca no TMS usam o mecanismo Lucene regex.
Dica
Chatbots de IA podem ser muito eficazes na geração e verificação de regex.
Use ferramentas como Regex101 para testar regex com diferentes entradas.
Importante
A Phrase suporta Java regex, mas rejeitará expressões regulares complexas para proteger o sistema de sobrecarga. Expressões regulares complexas são aquelas com quantificadores (exceto possessivos) em grupos que contêm outros quantificadores (exceto possessivos).
Exemplos para converter texto em tags ao importar arquivos e usar regex no editor desktop para funções de filtragem e encontrar e substituir:
|
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 nome@domínio.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 espaço em branco duplo |
|
^\d |
um dígito no início do segmento |
|
\w+\s\s\w+ |
um espaço em branco duplo 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 que não seja espaço em branco |
|
<[^>]+>|\$[^=]+= |
converte variáveis php e código html ($svariable['name'] =) |
|
^\s*\'[^:]+: |
converte a chave do campo javascript com espaços adicionais no início da linha ( 'key' :) |
|
\{\{[^\}]+\}\}|\'[^']+\' |
não traduz {{text here}} '{{text here}} conteúdo e o converte em tags |
|
\{\{[^\}]+\}\} |
representa texto entre colchetes {{}} |
|
\([^\)]+\) |
representa texto entre parênteses () |
|
\^[^\^]+\^ |
representa texto entre marcas ^ |
|
\@[^\@]+\@ |
representa texto entre marcas @ |
|
\^[^\^\?]+\? |
representa texto entre marcas ^ e ? |
|
\'[^']+\' |
representa texto entre apóstrofes ' ' |
|
\"[^"]+\" |
representa texto entre aspas "" |
|
\%[^\%]+\% |
representa texto entre símbolos % |
|
\$\{[^}]*\} |
representa texto entre ${ e }, por exemplo, ${variable} |
|
\$[a-zA-Z0-9\-_]+ |
representa uma string que começa com $, por exemplo, $appName |
|
(?<=\: ").*(?=") |
representa texto dentro de aspas duplas após um dois pontos e espaço, por exemplo, |
|
(?<=\: ').*(?=') |
representa texto dentro de aspas simples após um dois pontos e espaço, por exemplo, |
|
(?<=\=).*(?=) |
representa texto após um sinal de igual e sem espaço, por exemplo, chave=valor |
|
(.*)= |
representa texto antes de um sinal de igual |
|
=(.*) |
representa texto após um sinal de igual |
|
\/\/\S* |
representa hyperlinks. Além disso, https:\/\/\S* |
|
</?mrk[^>]*> |
representa tags HTML/XML abertas e fechadas |
Nota
Como os arquivos TXT no TMS são processados linha por linha, certas expressões regulares que funcionam em outros ambientes podem não funcionar como esperado.
Exemplos de expressões regulares ao importar um texto específico:
-
## MensagemDeErro ##1## O número deve ser maior que 0. ##Z##
Para importar texto entre ##1## e ##Z##, use regex:
(?<=##1## ).*(?= ##Z##) -
MensagemDeErro ("O número deve ser maior que 0.")
Para importar texto entre (" e "), use regex:
(?<=\(").*(?="\)) -
'mensagemDeErro' = 'O número deve ser maior que 0.'
Para importar texto após o sinal = e entre ' e ', use regex:
(?<=\= ').*(?=') -
errorMessage = "isto deve ser traduzido"
Para importar texto após o sinal = e entre 'e' use regex:
(?<=\= ").*(?=") -
msgstr ("O número deve ser maior que 0.")
Para importar strings msgstr em arquivos PO monolíngues usando um filtro TXT, use regex:
(?<=msgstr ").*(?=") -
# Nota: Esta é uma nota
Para excluir linhas que começam com #, use regex:
(^[^#].*) -
valores '126', 'DCeT', 'Texto (en)'
Para importar apenas texto entre aspas e com (en), como Texto (en)' use regex:
(?<=')[^']*\(en\)(?=')
Exemplo de estrutura JSON:
{
"list": {
"id": "1",
"valor": "texto 1 para tradução."
},
"text": {
"id": "2",
"valor": "texto 2 para tradução."
},
"menu": {
"id": "3",
"valor": "texto 3 para tradução."
},"array": ["blue","green"],"arrays": [{ "color": "blue", "title": "BLUE"
}, { "color": "green", "title": "GREEN" } ]}
-
para importar cada valor 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 | (OU):
lista/valor|menu/valor -
para importar apenas a primeira instância de um valor de um menu, use:
menu\[1\]/valor -
para importar o conteúdo de um array JSON seguindo uma certa chave, use:
(^|.*/)array\[.*\] -
para importar o conteúdo de um array específico de objetos, use:
(^|.*/)arrays\[.*\].*
Exemplo de arquivo YAML:
title: A
texto: traduzir A
categorias:
title: B
texto: traduzir B
categorias:
title: C
text: translate C
categorias:
conteúdo:
title: D
texto: traduzir D
regex para importação:
-
apenas 'traduzir A' :
texto -
apenas 'traduzir C':
categorias\[2\]/texto -
apenas 'traduzir D':
categorias\[\d+\]/conteúdo[\1\]/texto -
todo o texto:
texto|categorias\[\d+\]/texto|categorias\[\d+\]/conteúdo[\d+\]/texto
Okapi, Java e Unicode são usados para regras de segmentação em arquivos .SRX.
Usar regex em arquivos .SRX é complexo e um conhecimento básico do uso de expressões regulares é recomendado antes de tentar trabalhar com elas.
Regras de Nobreak (Abreviações etc.) e Regras de Quebra (Fim da frase com um ponto, etc) estão nos 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 minúscula. |
|
[\p{N}] |
Qualquer tipo de caractere numérico. |
|
\Q ... \E |
Início e fim de uma citação - (\QAprox.\E). Isto é usado para Abreviações. |
|
\t |
Tabulador |
|
\n |
Nova linha |
|
\u2029 |
Separador de parágrafo |
|
\u200B |
Espaço de largura zero |
|
\u3002 |
Ponto final ideográfico |
|
\ufe52 |
Pequeno ponto final |
|
\uff0e |
Ponto final em largura total |
|
\uff61 |
Ponto final ideográfico em meia largura |
|
\ufe56 |
Pequena interrogação |
|
\uff1f |
Interrogação em largura total |
|
\u203c |
Duplo ponto de exclamação |
|
\u2048 |
Ponto de interrogação e exclamação |
|
\u2762 |
Ornamento de ponto de exclamação pesado |
|
\u2763 |
Ornamento de ponto de exclamação de coração pesado |
|
\ufe57 |
Pequeno ponto de exclamação |
|
\uff01 |
Ponto de exclamação em largura total |
|
`[\u0080-\uFFFF]+` |
Caracteres do intervalo Unicode \u0080 a \uFFFF |
|
`[\u00a8\u00b9\u00c4]+` |
Uma ou mais ocorrências dos caracteres Unicode especificados dentro dos colchetes, por exemplo, \u00a8 + \u00b9 + \u00c4 |
|
Verificação de controle de qualidade |
Regex de texto original |
Regex de tradução |
|---|---|---|
|
Números adicionais na tradução |
|
|
|
Ordem das tags (não emparelhadas, para segmentos com 3 tags). Ajuste o regex de acordo com o número necessário de tags. |
|
|
|
Ordem das tags (emparelhadas, para segmentos com 3 tags). Ajuste o regex de acordo com o número necessário de tags. |
|
|
|
Espaços antes das tags |
|
|
|
Espaços após as tags |
|
|
|
Não há espaço antes das tags |
|
|
|
Caracteres não brancos após tags emparelhadas |
|
|
|
Faltando colchetes quadrados |
|
|
|
Faltando parênteses redondos |
|
|
|
Use as seguintes expressões regulares para verificar a mesma contagem de números decimais idênticos, utilizando o separador decimal específico do idioma. |
|
|