A expressão regular (abreviada como regex ou regex) é uma sequência de caractere que forma um padrão de pesquisa principalmente para usar em correspondência de padrão com Strings ou correspondência de string. A funcionalidade é semelhante às operações de localizar e Substituir com mais complexidade e especificidade ou como um método para excluir conteúdo definido. Consulte a entrada wikipedia para uma descrição detalhada de regex e uma tabela de caractere usados.
Para usar múltiplas regex por vez, inserir um caractere de pipeline | entre elas.
Regex pode ser usado nos campos de filtrar, pesquisar e Substituir no CAT Editor, nos campos de texto original e tradução do recurso de pesquisar conteúdo, para o recurso em configurações de importar arquivo e para personalizar regras de segmentação. O conversor e o CAT Desktop Editor usar Java regex, enquanto o CAT Web Editor e a pesquisa no TMS usar o mecanismo Lucene regex.
Dica
Chatbots de IA podem ser muito eficazes na geração e verificação de regex.
Usar Ferramentas como Regex101 para testar regex com diferentes entradas.
Importante
O Phrase oferece suporte a Java regex, mas rejeitará expressões regulares complexas para proteger o sistema contra 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 códigos ao importar arquivos e usar expressão regular no editor para desktop para funções de filtrar e Substituir:
|
Exemplo |
Descrição |
|---|---|
|
<[^>]+> |
represents <html_tag> |
|
\{[^\}]+\} |
representa {variable}, |
|
\[[^\]]+\] |
representa [variable], |
|
\[\[.+?\]\] |
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. |
|
.+\@.+\..+ |
e-mail address name@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 quebra de linha precedida por qualquer caractere de espaço em branco |
|
\S\n |
uma quebra de linha precedida por qualquer caractere que não seja de espaço em branco |
|
<[^>]+>|\$[^=]+= |
converte variáveis php e código html ($svariable['name'] =) |
|
^\s*\'[^:]+: |
converte a chave de campo do javascript com espaços adicionais no início da linha ( 'chave' :) |
|
\{\{[^\}]+\}\}|\'[^']+\' |
não traduz {{text here}} conteúdo '{{text here}} e o converte em tags |
|
\{\{[^\}]+\}\} |
representa o texto entre colchetes {{}} |
|
\([^\)]+\) |
representa o texto entre parênteses () |
|
\^[^\^]+\^ |
representa o texto entre marcas ^ |
|
\@[^\@]+\@ |
representa o texto entre marcas @ |
|
\^[^\^\?]+\? |
representa o texto entre as marcas ^ e ? |
|
\'[^']+\' |
representa o texto entre apóstrofos ' ' |
|
\"[^"]+\" |
representa o texto entre aspas "" |
|
\%[^\%]+\% |
representa o texto entre símbolos % |
|
\$\{[^}]*\} |
representa o texto entre ${ e }, por exemplo ${variable} |
|
\$[a-zA-Z0-9\-_]+ |
representa uma string que começa com $, por exemplo $appName |
|
(?<=\: ").*(?=") |
representa o 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 texto antes de um sinal de igual |
|
=(.*) |
representa texto após um sinal de igual |
|
\/\/\S* |
representa hiperlinks. Além disso, https:\/\/\\S* |
|
</?mrk[^>]*> |
representa tags HTML/XML abertas e fechadas |
Nota
Como 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:
-
## ErrorMessage ##1## O número deve ser maior que 0. ##Z##
Para importar texto entre ##1## e ##Z## ,usar regex:
(?<=##1## ).*(?= ##Z##) -
ErrorMessage (\"O número deve ser maior que 0.\")
Para importar texto entre (\" e \") , usar regex:
(?<=\\(\").*(?=\"\\)) -
'errorMessage' = 'O número deve ser maior que 0.'
Para importar texto após o sinal = e entre ' e ' , usar regex:
(?<=\\= ').*(?=') -
errorMessage = \"isto deve ser traduzido\"
Para importar texto após o sinal de = e entre 'e' usar regex:
(?<=\\= \").*(?=\") -
msgstr (\"O número deve ser maior que 0.\")
Para importar Strings msgstr em arquivos OS monolíngues usando um filtro TXT, usar regex:
(?<=msgstr \").*(?=\") -
# Nota: Esta é uma nota
Para Excluir linhas começando com # , usar regex:
(^[^#].*) -
valores '126', 'DCeT', 'Texto (en)'
Para importar apenas texto entre aspas e com (en), como Texto (en)' usar 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 cada valor independentemente do nível, usar:
(^|.*/)value -
para importar apenas um valor de uma lista, usar:
list/value -
para importar um valor de uma lista e/ou menu, usar o operador | (OU):
list/value|menu/value -
para importar apenas a primeira instância de um valor de um menu, usar:
menu\\[1\\]/value -
para importar o conteúdo de uma matriz JSON seguindo uma certa chave, usar:
(^|.*/)array\\[.*\\] -
para importar o conteúdo de uma matriz específica de objetos, usar:
(^|.*/)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 importar:
-
apenas 'translate A' :
texto -
apenas 'translate C':
categories\\[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ão regular é recomendado antes de tentar trabalhar com eles.
Regras de não quebra (abreviações etc.) e regras de quebra (fim da frase 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 possui uma variante minúscula. |
|
[\p{N}] |
Qualquer tipo de caractere numérico. |
|
\Q ... \E |
Início e fim de uma citação - (\\QApprox.\\E). Isso é usado para abreviações. |
|
\t |
Tabulação |
|
\n |
Nova linha |
|
\u2029 |
Separador de parágrafo |
|
\u200B |
Espaço de largura zero |
|
\u3002 |
Ponto final ideográfico |
|
\ufe52 |
Ponto final pequeno |
|
\uff0e |
Ponto final de largura total |
|
\uff61 |
Ponto final ideográfico de meia largura |
|
\ufe56 |
Ponto de interrogação pequeno |
|
\uff1f |
Ponto de interrogação de largura total |
|
\u203c |
Ponto de exclamação duplo |
|
\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 |
Ponto de exclamação pequeno |
|
\uff01 |
Ponto de exclamação de 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 do texto original |
Regex da tradução |
|---|---|---|
|
Números adicionais na tradução |
|
|
|
Pedido das tags (não pareadas, para segmentos com 3 tags). Ajustar a regex de acordo com o número necessário de tags. |
|
|
|
Pedido das tags (pareadas, para segmentos com 3 tags). Ajustar a 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 dos códigos |
|
|
|
Caracteres que não sejam espaços em branco após tags pareadas |
|
|
|
Colchetes ausentes |
|
|
|
Parênteses ausentes |
|
|
|
Usar as seguintes expressões regulares para verificar a mesma contagem de números decimais idênticos, usando o separador decimal apropriado para o idioma. |
|
|