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 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 filtrar, buscar e substituir no editor CAT, nos campos de origem e destino da função buscar conteúdo, para a nas configurações de importação de arquivo e para personalizar regras de segmentação. O conversor e o editor CAT para 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
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 para 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 ( 'chave' : ) |
|
\{\{[^\}]+\}\}|\'[^']+\' |
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óstrofos ' ' |
|
\"[^"]+\" |
representa texto entre aspas "" |
|
\%[^\%]+\% |
representa texto entre símbolos % |
|
\$\{[^}]*\} |
representa texto entre ${ e }, por exemplo, ${variável} |
|
\$[a-zA-Z0-9\-_]+ |
representa uma string que começa com $, por exemplo, $nomeDoApp |
|
(?<=\: ").*(?=") |
representa texto dentro de aspas duplas após dois pontos e espaço, por exemplo, |
|
(?<=\: ').*(?=') |
representa texto dentro de aspas simples após dois pontos e espaço, por exemplo, |
|
(?<=\=).*(?=) |
representa texto após um sinal de igual e sem espaço, por exemplo, chave=valor |
|
(.*)= |
representa o texto antes de um sinal de igual |
|
=(.*) |
representa o 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:
(?<=\= ').*(?=') -
mensagemDeErro = "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:
(^[^#].*) -
values '126', 'DCeT', 'Text (en)'
Para importar apenas texto entre aspas e com (en), como Texto (en), use regex:
(?<=')[^']*\(en\)(?=')
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": "GREEN" } ]}
-
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 | (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 determinada chave, use:
(^|.*/)array\[.*\] -
para importar o conteúdo de um array específico de objetos, use:
(^|.*/)arrays\[.*\].*
Exemplo de arquivo 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
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 |
|
。 |
Ponto final em largura total |
|
\uff61 |
Ponto final ideográfico em largura reduzida |
|
\ufe56 |
Pequeno ponto de interrogação |
|
\uff1f |
Ponto de 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 em forma de coração pesado |
|
\ufe57 |
Pequeno ponto de exclamação |
|
\uff01 |
Ponto de exclamação em largura total |
|
`[\u0080-\uFFFF]+` |
Caracteres da faixa 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 |
Expressão regular de origem |
Expressão regular de destino |
|---|---|---|
|
Números adicionais no destino |
|
|
|
Ordem de tags (não pareadas, para segmentos com 3 tags). Ajuste a regex de acordo com o número de tags exigido. |
|
|
|
Ordem de tags (pareadas, para segmentos com 3 tags). Ajuste a regex de acordo com o número de tags exigido. |
|
|
|
Espaços antes das tags |
|
|
|
Espaços depois das tags |
|
|
|
Não há espaço antes dos códigos |
|
|
|
Caracteres não brancos após tags pareadas |
|
|
|
Faltando colchetes quadrados |
|
|
|
Faltando parênteses redondos |
|
|
|
Use as seguintes expressões regulares para verificar a mesma contagem de números decimais idênticos, usando o separador decimal específico do idioma. |
|
|