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 |