Você usa as classes de caracteres para especificar uma lista de caracteres que correspondem a uma posição na expressão regular. Você define as classes de caracteres com colchetes ( [ e ] ). Por exemplo, a expressão regular a seguir define uma classe de caracteres que corresponde a bag, beg, big, bog oubug:
/b[aeiou]g/
Seqüências de eliminação nas classes de caracteres
A maioria dos metacaracteres e das metaseqüências que normalmente tem significados especiais em uma expressão regularnão tem esses mesmos significados em uma classe de caractere. Por exemplo, em uma expressão regular, o asterisco é usado para repetição, mas esse não é o caso quando o asterisco aparece em uma classe de caracteres. A classe de caracteres a seguir corresponde ao asterisco literalmente, junto com qualquer outro caractere listado:
/[abc*123]/
Entretanto, os três caracteres listados na tabela a seguir funcionam como metacaracteres, com significado especial, nas classes de caracteres:
Metacaractere
|
Significado nas classes de caracteres
|
]
|
Define o final de uma classe de caracteres.
|
-
|
Define um intervalo de caracteres (consulte a próxima seção, “Intervalos de caracteres nas classes de caracteres”).
|
\
|
Define metaseqüências e elimina o significação especial dos metacaracteres.
|
Para que qualquer um desses caracteres seja reconhecido como caracteres literais (sem o significado do metacaractere especial), você deve precedê-lo com o caractere escape de barra invertida. Por exemplo, a expressão regular a seguir inclui uma classe de caracteres que corresponde a qualquer um dos quatro símbolos ($, \, ] ou-):
/[$\\\]\-]/
Além dos metacaracteres que mantêm seu significado especial, as metaseqüências a seguir funcionam como metaseqüências nas classes de caracteres:
Metaseqüência
|
Significado nas classes de caracteres
|
\n
|
Corresponde a um caractere de nova linha.
|
\r
|
Corresponde a um caractere de retorno.
|
\t
|
Corresponde a um caractere de tabulação.
|
\unnnn
|
Corresponde ao caractere com o valor do ponto de código Unicode especificado (como definido pelo número hexadecimal nnnn).
|
\\xnn
|
Corresponde ao caractere com o valor ASCII especificado (como definido pelo número hexadecimal nn).
|
Outros metacaracteres e metaseqüências de expressões regulares são tratados como caracteres normais em uma classe de caracteres.
Intervalos de caracteres nas classes de caracteres
Use o hífen para especificar um intervalo de caracteres, como A-Z, a-z ou0-9. Esses caracteres devem constituir um intervalo válido no conjunto de caracteres. Por exemplo, a classe de caracteres a seguir corresponde a qualquer um dos caracteres no intervalo de a-z ou qualquer dígito:
/[a-z0-9]/
Você também pode usar o código de caractere ASCII \\xnn para especificar um intervalo por valor ASCII. Por exemplo, a classe de caracteres a seguir corresponde a qualquer caractere de um conjunto de caracteres ASCII estendido (como é e ê ):
\\x
Classes de caracteres negadas
Quando você usa um caractere circunflexo (^) no início de uma classe de caracteres, ele nega aquela classe — qualquer caractere não listado é considerado uma correspondência. A classe de caracteres a seguir corresponde a qualquer caractere exceto a uma letra minúscula (az–) ou um dígito:
/[^a-z0-9]/
Você deve digitar o caractere circunflexo (^) no início de uma classe de caracteres para indicar a negação. Caso contrário, você estará simplesmente adicionando o caractere circunflexo aos caracteres na classe de caracteres. Por exemplo, a classe de caracteres a seguir corresponde a qualquer um dos caracteres de símbolo, incluindo o circunflexo:
/[!.,#+*%$&^]/