Clases de caracteres

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

Se pueden utilizar clases de caracteres para especificar una lista de caracteres con el fin de detectar una posición en la expresión regular. Las clases de caracteres se definen con corchetes ( [ y ] ). Por ejemplo, la siguiente expresión regular define una clase de caracteres que detecta bag , beg , big , bog o bug :

/b[aeiou]g/

Secuencias de escape en clases de caracteres

La mayoría de los metacaracteres y las metasecuencias que normalmente tienen significados especiales en una expresión regular no tienen el mismo significado dentro de una clase de caracteres. Por ejemplo, en una expresión regular, el asterisco se utiliza para indicar repetición, pero en una clase de caracteres no tiene este significado. La siguiente clase de caracteres detecta el asterisco literalmente, junto con cualquiera de los otros caracteres indicados:

/[abc*123]/

Sin embargo, los tres caracteres mostrados en la tabla siguiente funcionan como metacaracteres (tienen un significado especial) en las clases de caracteres:

Metacarácter

Significado en las clases de caracteres

]

Define el final de la clase de caracteres.

-

Define un rango de caracteres (consulte la siguiente sección "Rangos de caracteres en clases de caracteres").

\

Define metasecuencias y omite el significado especial de los metacaracteres.

Para que se reconozca cualquiera de estos caracteres como un carácter literal (sin su significado especial de metacarácter), hay que escribir el carácter de escape barra diagonal inversa inmediatamente antes del carácter. Por ejemplo, la siguiente expresión regular incluye una clase de caracteres que detecta cualquiera de los cuatro símbolos ( $ , \ , ] o - ):

/[$\\\]\-]/

Además de los metacaracteres que conservan su significado especial, las siguientes metasecuencias funcionan como metasecuencias en las clases de caracteres:

Metasecuencia

Significado en las clases de caracteres

\n

Detecta un carácter de nueva línea.

\r

Detecta un carácter de retorno.

\t

Detecta un carácter de tabulación.

\u nnnn

Detecta el carácter con el valor de código Unicode especificado (definido por el número hexadecimal nnnn ).

\\x nn

Detecta el carácter con el valor ASCII especificado (definido por el número hexadecimal nn ).

Otros metacaracteres y metasecuencias de expresión regular se tratan como caracteres normales dentro de una clase de caracteres.

Rangos de caracteres en clases de caracteres

Se utiliza un guion para especificar un rango de caracteres, como A-Z , a-z o 0-9 . Estos caracteres deben constituir un rango válido en el conjunto de caracteres. Por ejemplo, la siguiente clase de caracteres detecta cualquiera de los caracteres del intervalo a-z o cualquier dígito:

/[a-z0-9]/

También se puede utilizar el código de carácter ASCII \\x nn para especificar un rango por valor ASCII. Por ejemplo, la siguiente clase de caracteres detecta cualquier carácter de un conjunto de caracteres extendidos ASCII (como é y ê ):

\\x

Clases de caracteres denegados

Si se utiliza un carácter de intercalación ( ^ ) al principio de una clase de caracteres, deniega los caracteres de la clase: detectará cualquier carácter que no esté en la clase. La siguiente clase de caracteres detecta cualquier carácter salvo una letra minúscula ( a–z –) o un dígito:

/[^a-z0-9]/

Para indicar la negación se debe escribir el carácter de intercalación ( ^ ) al principio de una clase de caracteres. De lo contrario, solo se añade el carácter de intercalación a los caracteres de la clase de caracteres. Por ejemplo, la siguiente clase de caracteres detecta cualquier carácter de un conjunto de caracteres de símbolo, incluido el signo de intercalación:

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