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 ou bug :

/b[aeiou]g/

Sequências de eliminação nas classes de caracteres

A maioria dos metacaracteres e das metassequências que normalmente tem significados especiais em uma expressão regular nã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 metassequê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 metassequências a seguir funcionam como metassequências nas classes de caracteres:

Metassequê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.

\u nnnn

Corresponde ao caractere com o valor do ponto de código Unicode especificado (como definido pelo número hexadecimal nnnn ).

\\x nn

Corresponde ao caractere com o valor ASCII especificado (como definido pelo número hexadecimal nn ).

Outros metacaracteres e metassequê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 ou 0-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 \\x nn 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:

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