OmegaT 3.1 - Manual do Usuário

Expressões regulares

As expressões regulares (conhecidas como regex) usadas em buscas e regras de segmentação são aquelas suportadas pelo Java. Caso você precise de mais informações específicas, consulte o Documentação Java Regex. Veja outras referências e exemplos a seguir.

Note

Este capítulo é orientado para usuários avançados que desejam definir suas próprias variantes de regras de segmentação, ou planejar itens de chave de busca mais complexos.

Table 20. Regex - Marcações
A construção ... corresponde ao seguinte
(?i) Ativa correspondências que ignoram maiúsculas e minúsculas (por predefinição, o padrão faz a distinção entre maiúsculas e minúsculas).

Table 21. Regex - Caractere
A construção ... corresponde ao seguinte
x O caractere x, exceto o seguinte...
\uhhhh O caractere com valor hexadecimal 0xhhhh
\t O caractere de tabulação ('\u0009')
\n O caractere de nova linha (alimentação de linha) ('\u000A')
\r O caractere de retornar ao início da linha ('\u000D')
\f O caractere de alimentar formulário ('\u000C')
\a O caractere de alerta (sino) ('\u0007')
\e O caractere escape ('\u001B')
\cx O caractere de controle corresponde ao x
\0n O caractere com valor octal 0n (0 <= n <= 7)
\0nn O caractere com valor octal 0nn (0 <= n <= 7)
\0mnn O caractere com valor octal 0mnn (0 <= m <= 3, 0 <= n <= 7)
\xhh O caractere com valor hexadecimal 0xhh

Table 22. Regex - Citação
A construção ... corresponde ao seguinte
\ Nothing, but quotes the following character. Isso é necessário se você quiser inserir quaisquer metacaracteres !$()*+.&lt;&gt;?[ \\ ]^{|} para casar como eles próprios.
\\ Por exemplo, este é um caractere de barra invertida
\Q Nada, mas escapa todos os caracteres até \E
\E Nada, mas finaliza o escape iniciado pelo \Q

Table 23. Regex - Classes para blocos e categorias do Unicode
A construção ... corresponde ao seguinte
\p{InGreek} Um caractere no bloco Grego (bloco único)
\p{Lu} Uma letra maiúscula (categoria única)
\p{Sc} Um símbolo de moeda
\P{InGreek} Qualquer caractere, exceto um no bloco Grego (negação)
[\p{L}&&[^\p{Lu}]] Qualquer letra, exceto letra maiúscula (subtração)

Table 24. Regex - Classes de caracteres
A construção ... corresponde ao seguinte
[abc] a, b, ou c (classe simples)
[^abc] Qualquer caractere exceto a, b, ou c (negação)
[a-zA-Z] a até z ou A até Z, inclusive (intervalo)

Table 25. Regex - Classes de caracteres predefinidos
A construção ... corresponde ao seguinte
. Qualquer caractere (exceto para fim de linha)
\d Um dígito: [0-9]
\D Um caractere que não seja dígito: [^0-9]
\s Um caractere de espaço em branco: [ \t\n\x0B\f\r]
\S Um caractere que não seja de espaço em branco: [^\s]
\w Um caractere de palavra: [a-zA-Z_0-9]
\W Um caractere que não seja de palavra: [^\w]

Table 26. Regex - Correspondentes de limite (borda)
A construção ... corresponde ao seguinte
^ O início de uma linha
$ O final de uma linha
\b Limite de uma palavra
\B Limite que não seja de palavra

Table 27. Regex - Quantificadores gulosos
A construção ... corresponde ao seguinte
X ? X, uma única vez ou nenhuma
X * X, zero ou mais vezes
X + X, uma ou mais vezes

Note

os quantificadores gulosos farão o maior número de correspondências possíveis. Por exemplo, a+? casará aaa em aaabbb

Table 28. Regex - Quantificadores não-gulosos
A construção ... corresponde ao seguinte
X?? X, uma única vez ou nenhuma
X*? X, zero ou mais vezes
X+? X, uma ou mais vezes

Note

os quantificadores não gulosos farão o menor número de correspondências possíveis. Por exemplo, a+? casará o primeiro a em aaabbb

Table 29. Regex - Operadores lógicos
A construção ... corresponde ao seguinte
XY X seguido por Y
X|Y Ou X ou Y
(XY) XY como um grupo único

Ferramentas e exemplos de uso das Regex

Diversas ferramentas interativas estão disponíveis para desenvolver e testar as expressões regulares. Em geral, elas seguem muito o mesmo padrão (para um exemplo do testador de expressões regulares veja abaixo): a expressão regular (mostrada no topo) analisa o texto de pesquisa (caixa de texto no meio), e gera os hits, mostrados na caixa de resultados.

Figure 13. Testador das Regex
Testador das Regex

Veja The Regex Coach para as versões Windows, Linux, FreeBSD de ferramenta autônoma. O mesmo vale para o exemplo acima..

Uma boa coleção de casos de regex úteis pode ser encontrada no próprio OmegaT (veja Opções > Segmentação). A seguinte lista inclui expressões que podem ser úteis na busca em memória de tradução:

Table 30. Regex - Exemplos de expressões regulares em traduções
Expressão regular Encontra os seguintes:
(\b\w+\b)\s\1\b palavras duplicadas
[\.,]\s*[\.,]+ vírgula ou ponto final, seguido de espaçoes e novamente vírgula ou ponto final
\. \s+$ espaços extras, após o ponto no fim da linha
\s+a\s+[aeiou] Inglês: palavras, começando com vogais, que deveriam sempre ser precedidas por "an" e não "a"
\s+an\s+[^aeiou] Inglês: a mesma verificação acima, porém a respeito de consoantes ("a", não "an")
\s{2,} mais de um espaço
\.[A-Z] Ponto final, seguido por um caractere maiúsculo - possivelmente um espaço está faltando entre o ponto final e o início de uma nova sentença?
\bis\b procura por "is", e não "this" ou "isn't", etc.