O expressão regular (abreviado como regex ou expressão regular) é uma sequência de caracteres que formam um padrão de busca principalmente para uso em correspondência de padrões com strings ou string-matching. A funcionalidade é semelhante a encontrar e substituir operações com mais complexidade e especificidade. Veja o verbete da wikipedia para uma descrição detalhada de expressão regular e uma tabela de caracteres usados.
Até usar vários regexps ao mesmo tempo inserir um caractere de pipeline |
entre eles.
Os regexps podem ser usados nos campos de filtro, pesquisa e substituição no editor de área de trabalho CAT, nos campos texto original e tradução do recurso Pesquisa para conteúdo, para o recurso, Converter em códigos em Arquivo
Importante
Phrase suporta Java expressão regular, mas rejeitar expressões regulares complexas para proteger o sistema de sobrecarga. Regexps complexos são aqueles 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 funções de pesquisa e substituição:
Exemplo |
Descrição |
---|---|
<[^>]+> |
represents <html_tag> |
\{[^\}]+\} |
representa {variável}, |
\[[^\]]+\] |
representa [variável], |
\[\[.+?\]\] |
represents [[aa[11]bb]]. |
\$[^\$]+\$ |
representa $operator_Name1$. |
\d+ |
representa números. Also, [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$ |
uma espaço em branco no final do segmento |
^\s |
uma 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+ |
uma espaço em branco dupla entre palavras |
\s\n |
uma nova linha precedida por qualquer caractere espaço em branco |
\S\n |
uma nova linha precedida por qualquer caractere não 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 em branco adicionado no início da linha ( 'chave' :) |
\{\{[^\}]+\}\}|\'[^']+\' |
não traduz {{text here}} '{{text here}} conteúdo e converte-o em códigos |
Exemplos de expressões regulares ao importar um texto específicos:
-
## ErrorMessage ##1## O número deve ser maior que 0. ##Z##
Até importar texto entre ##1## e ##Z## ,use expressão regular: (?<=##1## ).*(?= ##Z## ,)
-
ErrorMessage ("O número deve ser maior que 0.")
Até importar texto entre (" e ") , use expressão regular:
(?<=\(").*(?="\))
'errorMessage' = 'O número deve ser maior que 0'.
Até importar texto após o sinal = e entre ' e ' , use expressão regular: (?<=\= ').*(?=' , )
-
errorMessage = "isto deve ser traduzido"
Até importar texto após o sinal = e entre 'e' use expressão regular:
(?<=\= ").*(?=")
-
msgstr ("O número deve ser maior que 0.")
Até importar msgstr strings em arquivos Ordem de serviço monolíngues usando um filtro TXT, use expressão regular:
(?<=msgstr ").*(?=")
# Observação: Este é um nota
Até excluir linhas começando com # , use expressão regular: (^[^# , ].*)
valores '126', 'DCeT', 'Text (en)'
Até importar único texto entre aspas e com (en), como Text (en)' use expressão regular: (?<=')[^']*\(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 todos os valores, independentemente do nível, use: (^|. */)valor
-
Para importar apenas um valor de uma lista, use: List/Value
-
Para importar um valor de uma lista e/ou menu, use o | (OR) operador: list/value|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 seguindo uma determinada chave, use: (^|. */)matriz\[.*\]
-
Para importar o conteúdo de uma específicos matriz de objetos, use: (^|. */)matrizes\[.*\].*
Exemplo de mosca YAML:
título: A
texto: traduzir A
Categorias:
título: B
texto: traduzir B
Categorias:
título: C
texto: traduzir C
Categorias:
conteúdo:
título: D
texto: traduzir D
expressão regular para importação:
-
apenas 'traduzir A' :
texto
-
apenas 'traduzir C':
categorias\[2\]/texto
-
apenas 'traduzir D':
categorias\[\d+\]/content[\1\]/text
todo o texto: text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text
Okapi, Java e Unicode são usados para regras de segmentação no . Arquivos SRX.
Usando expressão regular em . Os arquivos SRX são complexos e um conhecimento básico do uso expressão regular é recomendado antes de tentar trabalhos com eles.
As regras Nobreak (abreviaturas etc.) e as regras Break (Fim da frase com um ponto, etc) estão em . Arquivos SRX.
Exemplo
Descrição
[\p{C}]
Caráter de controle invisível.
[\p{Z}]
Whitespace
[\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 cotação - (\QApprox.\E). Isso é usado para abreviações.
\t
Tabulator
\n
Newline
\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
Pequeno ponto de interrogação
\uff1f
Ponto de interrogação de largura total
\u203c
Ponto de exclamação duplo
\u2048
Ponto de exclamação de perguntas
\u2762
Ornamento pesado do ponto de exclamação
\u2763
Ornamento de ponto de exclamação de coração pesado
\ufe57
Pequeno ponto de exclamação
\uff01
Ponto de exclamação de largura total
controle de qualidade Verificar
Regexp de origem
Regexp de destino
Números adicionais em tradução
\d
\d
Tags pedido (não emparelhado)
^.*\{1\}.*\{2\}.*$
^.*\{1\}.*\{2\}.*$
Tags pedido (não emparelhado)
^.*\{1\}.*\{2\}.*\{3\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*$
Tags pedido (não emparelhado)
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
Tags pedido (emparelhado)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
Tags pedido (emparelhado)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$
Espaços antes 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}\})
Espaços após códigos
(\{[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
Sem espaço antes 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}\})
Ausente colchetes
[^\[\]]*\[[^\[\]]*\][^\[\]]*
[^\[\]]*\[[^\[\]]*\][^\[\]]*
Ausente parênteses redondos
[^\(\)]*\([^\(\)]*\)[^\(\)]*
[^\(\)]*\([^\(\)]*\)[^\(\)]*