Classes de caracteres

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

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:

/[!.,#+*%$&^]/