OmegaT 4.2 - Guia do utilizador

# Apêndice D. Expressões regulares

As expressões regulares (ou regex para abreviar) utilizadas nas procuras e regras de segmentação são as suportadas pelo Java. Se precisar de informações mais específicas, consulte a documentação Java Regex. Ver referências e exemplos adicionais abaixo.

### Nota

Este capítulo destina-se a utilizadores avançados, que precisam de definir as suas próprias variantes de regras de segmentação ou conceber itens de procura-chave mais complexos e poderosos.

Tabela D.1. Regex - Marcas

A construção | ... corresponde ao seguinte
--- | ---
(?i) | Permite a correspondência não sensível a maiúsculas e minúsculas (por defeito, o padrão é sensível a maiúsculas e minúsculas).

Tabela D.2. Regex - Carácter

A construção | ... corresponde ao seguinte
--- | ---
x | O carácter x, excepto o seguinte...
\uhhhh | O carácter com valor hexadecimal 0xhhhh
\t | O carácter de tabulação ("\u0009")
\n | O carácter de nova linha ("\u000A")
\r | O carácter de retorno do carro ("\u000D")
\f | O carácter de nova folha ("\u000C")
\a | O carácter de som (bell) ("\u0007")
\e | O carácter de escape ("\u001B")
\cx | O carácter de controlo correspondente a x
\0n | O carácter com valor octal 0n (0 <= n <= 7)
\0nn | O carácter com valor octal 0nn (0 <= n <= 7)
\0mnn | O carácter com valor octal 0mnn (0 <= m <= 3, 0 <= n <= 7)
\xhh | O carácter com valor hexadecimal 0xhh

Tabela D.3. Regex - Citação

A construção | ...corresponde ao seguinte
--- | ---
\ | Nada, mas cita o carácter seguinte. Isto é necessário se desejar introduzir qualquer um dos meta-caracteres !$()*+.<>?[\]^{|} para corresponder como eles próprios.
\\ | Por exemplo, este é o carácter de barra esquerda
\Q | Nada, mas cita todos os caracteres até \E
\E | Nada, mas termina a citação iniciada por \Q

Tabela D.4. Regex - Classes para blocos e categorias Unicode

A construção | ...corresponde ao seguinte
--- | ---
\p{InGreek} | Um carácter no bloco grego ( bloco simples)
\p{Lu} | Uma letra maiúscula ( categoria simples)
\p{Sc} | Um símbolo de moeda
\P{InGreek} | Qualquer carácter, excepto um do bloco grego (negação)
[\p{L}&&[^\p{Lu}]] | Qualquer letra, excepto uma letra maiúscula (subtracção)

Tabela D.5. Regex - Classes de caracteres

A construção | ...corresponde ao seguinte
--- | ---
[abc] | a, b, ou c (classe simples)
[^abc] | Qualquer carácter excepto a, b, ou c (negação)
[a-zA-Z] | a até z ou A até Z, inclusive (intervalo)

Tabela D.6. Regex - Classes de caracteres pré-definidas

A construção | ...corresponde ao seguinte
--- | ---
. | Qualquer carácter (excepto para terminadores de linha)
\d | Um algarismo: [0-9]
\D | Um não algarismo: [^0-9]
\s | Um espaço em branco: [ \t\n\x0B\f\r]
\S | Um não-espaço em branco: [^\s]
\w | Um carácter de palavra: [a-zA-Z_0-9]
\W | Um carácter de não-palavra: [^\w]

Tabela D.7. Regex - Especificadores de limite

A construção | ...corresponde ao seguinte
--- | ---
^ | O início de uma linha
$ | O fim de uma linha
\b | Um limite de palavra
\B | Um não-limite de palavra

Tabela D.8. Regex - Quantificadores ávidos

A construção | ...corresponde ao seguinte
--- | ---
X ? | X, uma vez ou nunca
X * | X, zero ou mais vezes
X + | X, uma ou mais vezes

### Nota

quantificadores ávidos farão o máximo de correspondências possível. Por exemplo, a+ corresponderá a aaa em aaabbb

Tabela D.9. Regex - Quantificadores relutantes (não ávidos)

A construção | ...corresponde ao seguinte
--- | ---
X?? | X, uma vez ou nunca
X*? | X, zero ou mais vezes
X+? | X, uma ou mais vezes

### Nota

quantificadores relutantes farão o mínimo de correspondências possível. Por exemplo, a+? corresponderá ao primeiro a em aaabbb

Tabela D.10. Regex - Operadores lógicos

A construção | ...corresponde ao seguinte
--- | ---
XY | X seguido de Y
X|Y | X ou Y
(XY) | XY como um só grupo

## Ferramentas Regex e exemplos de utilização

Estão disponíveis várias ferramentas interactivas para desenvolver e testar expressões regulares. Seguem geralmente o mesmo padrão (para um exemplo de teste de expressão regular ver abaixo): a expressão regular (entrada superior) analisa o texto de procura (caixa de texto no meio), produzindo os resultados na caixa de texto.

Figura D.1. Teste de Regex

Veja o The Regex Coach para Windows, Linux, FreeBSD como ferramenta independente. Isto é muito idêntico ao exemplo acima.

Uma bela colecção de casos regex úteis pode ser encontrada no OmegaT em si mesmo (ver Opções > Segmentação). A lista seguinte inclui expressões que poderá achar úteis ao procurar através da memória de tradução:

Tabela D.11. Regex - Exemplos de expressões regulares em traduções

Expressão regular | Encontra o seguinte:
--- | ---
(\b\w+\b)\s\1\b | palavras duplas
[\.,]\s*[\.,]+ | vírgula ou um ponto, seguido de espaços e ainda outra vírgula ou ponto
\. \s+$ | espaços extra após o ponto no final da linha
\s+a\s+[aeiou] | Inglês: palavras, começando com vogais, devem geralmente ser precedidas por "an", não "a".
\s+an\s+[^aeiou] | Inglês: a mesma verificação que acima, mas relativa às consoantes ("a", não "an")
\s{2,} | mais de um espaço
\.[A-Z] | Ponto, seguido de uma letra maiúscula - possivelmente falta um espaço entre o ponto e o início de uma nova frase?
\bis\b | procurar por "is", não por "this" ou "isn't", etc.