# Buscas

## Índice

- 1. Janela de busca
- 2. Locais de busca
- 3. Métodos de busca
  - 3.1. Buscas exatas
  - 3.2. Buscas de palavra-chave
- 4. Busca usando curingas
- 5. Busca usando expressões regulares
  - 5.1. Expressões regulares para usar em buscas
  - 5.2. Resumo de elaborações de expressões regulares

## Janela de busca

O OmegaT oferece um grande leque de funções avançadas de busca.

Para acessar a janela de busca, pressione `Ctrl+F` e digite a palavra ou frase que quer localizar na caixa de texto "Buscar por".

Uma outra forma é selecionar uma palavra ou frase no texto destino do segmento aberto (chamado de campo de edição ou campo destino) e pressionar `Ctrl+F`. Neste caso, a palavra ou frase é inserida automaticamente na caixa "Buscar por".

Para cada busca será aberta uma nova janela. Se esquecer de fechá-las, ficará com diversas janelas de busca abertas.

As buscas são feitas nos segmentos fonte e destino de um projeto.

## Locais de busca

Selecione o local usando as caixas de seleção.

É possível selecionar diversos locais para sua busca:

- Somente no projeto (opção predefinida)
- O projeto, bem como as memórias de tradução de referência da pasta /tm/ (marque Buscar nas MTs)
- Um único arquivo ou pasta contendo um conjunto de arquivos (marque Buscar arquivos)

Neste último caso, o OmegaT somente pesquisará os arquivos que pode ler (Veja Formatos de arquivos compatíveis).

## Métodos de busca

Selecione o método usando as opções.

Há dois métodos para realizar as buscas:

- Busca exata: faz a busca por segmentos contendo a seqüência por você especificada.
- Busca de palavra-chave: faz a busca por segmentos contendo todas as palavras-chaves especificadas, em qualquer seqüência.

Para qualquer um desses dois métodos é possível selecionar as três seguintes opções:

- Distinição entre maiúsculas e minúsculas: se selecionada, a busca será feita conforme a seqüência exata especificada; caso contrário, as letras maiúsculas serão ignoradas.
- Expressões regulares: se selecionada, a seqüência da busca será tratada como uma expressão regular (no caso da busca de palavra-chave, ela será tratada como expressões múltiplas).
- Buscar nas MTs: se selecionada, todas as memórias serão incluídas na busca.

## Buscas exatas

Uma busca exata procura por uma frase, isto é, se forem fornecidas diversas palavras elas serão localizadas somente se ocorrerem exatamente na mesma seqüência. As buscas exatas são similares a uma pesquisa por "frase exata" em um dispositivo de busca na Internet, como o Google.

## Buscas de palavra-chave

Selecione "busca de palavra-chave" e digite qualquer quantidade de palavras individuais, separadas por espaços e em qualquer seqüência; o OmegaT exibe uma lista de todos os segmentos nos quais todas as palavras aparecem. As buscas de palavra-chave são similares à pesquisa "com todas as palavras" em um dispositivo de busca na Internet, como o Google (lógica AND).

## Busca usando curingas

Tanto na busca exata como na busca de palavra-chave pode-se usar os curingas '`*`' e '`?`'. Para usar curingas, verifique se a opção expressões regulares não está selecionada; caso contrário, esses caracteres serão interpretados como caracteres especiais (metacaracteres) da expressão regular.

O curinga '`?`' substitui qualquer caractere único, isto é, '`be?a`' encontrará ocorrências de '`beca`' e '`bela`'. O curinga '`*`' substitui um ou vários caracteres, isto é '`be*a`' encontrará ocorrências de '`beca`', '`bela`', '`beata`' e '`bebida`'.

Se quiser fazer buscas por segmentos contendo esses caracteres, será necessário ativar expressões regulares e deixar de lado esses caracteres acrescentando a eles uma barra invertida ('`\`'), isto é '`x\*y`' para localizar ocorrências de '`x*y`' e '`x\?y`' para localizar ocorrências de '`x?y`'.

## Busca usando expressões regulares

A busca usando expressões regulares é uma excelente maneira de localizar ocorrências de uma seqüência de caracteres e palavras (string). É similar à busca normal, porém com muito mais flexibilidade. Estão disponíveis na Internet tutoriais simples, como por exemplo o http://www.regular-expressions.info/quickstart.html.

### Expressões regulares para usar em buscas

As expressões regulares usadas em buscas são aquelas suportadas pelo Java. Se precisar de informações específicas, consulte http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html.

#### Resumo de elaborações de expressões regulares

Elaborar | Correspondências
--- | ---
Flags
`(?i)` | Ativa correspondências que ignoram maiúsculas e minúsculas (o padrão predefinido faz a distinção entre maiúsculas e minúsculas).
Caracteres
x | O caractere x, exceto o seguinte...
`\u` hhhh | O caractere com valor hexadecimal `0x` hhhh
`\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'`)
Escapar
`\` | Nada, mas escapa o caractere seguinte. Isto é necessário se você quiser inserir quaisquer metacaracteres `!$()*+.<>?[\]^{|}` para corresponder a eles mesmos.
`\\` | 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`
Classes de caracteres
`[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)
Classes de caracteres predefinidas
`.` | Qualquer caractere (exceto para terminadores de linha)
`\d` | Um dígito: `[0-9]`
`\D` | Um caractere que não seja dígito: `[^0-9]`
`\s` | Um caractere de espaçamento: `[ \t\n\x0B\f\r]`
`\S` | Um caractere que não seja de espaçamento: `[^\s]`
`\w` | Um caractere de palavra: `[a-zA-Z_0-9]`
`\W` | Um caractere que não seja de palavra: `[^\w]`
Correspondentes de limite (borda)
`^` | O início de uma linha
`$` | O final de uma linha
`\b` | Limite de uma palavra
`\B` | Limite que não seja de palavra
Quantificadores vorazes (gulosos ou possessivos)
Eles farão o maior número de correspondências possíveis. Por exemplo, `a+` corresponderá a `aaa` em `aaabbb`
X`?` | X, uma ou nenhuma
X`*` | X, zero ou mais vezes
X`+` | X, uma ou mais vezes
Quantificadores relutantes (não-vorazes)
Eles farão o menor número possível de correspondências. Por exemplo, `a+?` corresponderá o primeiro `a` em `aaabbb`
X`??` | X, uma ou nenhuma
X`*?` | X, zero ou mais vezes
X`+?` | X, uma ou mais vezes
Operadores lógicos
XY | X seguido por Y
X`|`Y | Ou X ou Y
`(`XY`)` | XY como um grupo único

Avisos legais