Caracteres, metacaracteres y metasecuencias

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

La expresión regular más sencilla es la que detecta una secuencia de caracteres, como en el siguiente ejemplo:

var pattern:RegExp = /hello/;

No obstante, los siguientes caracteres, denominados metacaracteres , tienen significados especiales en las expresiones regulares:

^ $ \ . * + ? ( ) [ ] { } |

Por ejemplo, la siguiente expresión regular detecta la letra A seguida de cero o más instancias de la letra B (el metacarácter asterisco indica esta repetición), seguidas de la letra C:

/AB*C/

Para incluir un metacarácter sin su significado especial en un patrón de expresión regular, hay que utilizar el carácter de escape de barra diagonal inversa ( \ ). Por ejemplo, la siguiente expresión regular detecta la letra A seguida de la letra B, seguida de un asterisco, seguido de la letra C:

var pattern:RegExp = /AB\*C/;

Una metasecuencia , al igual que un metacarácter, tiene un significado especial en una expresión regular. Las metasecuencias están formadas por más de un carácter. Las secciones siguientes proporcionan detalles sobre la utilización de metacaracteres y metasecuencias.

Metacaracteres

En la tabla siguiente se muestra un resumen de los metacaracteres que se pueden utilizar en las expresiones regulares:

Metacarácter

Descripción

^ (intercalación)

Detecta el principio de la cadena. Con el indicador m ( multiline ) establecido, el signo de intercalación también detecta el inicio de cada línea (consulte Indicadores y propiedades ). Hay que tener en cuenta que cuando se utiliza al principio de una clase de caracteres, el signo de intercalación indica negación, no el principio de una cadena. Para más información, consulte Clases de caracteres .

$ (signo dólar)

Detecta el final de la cadena. Con el indicador m ( multiline ) establecido, $ detecta la posición anterior a un carácter de nueva línea ( \n ). Para más información, consulte Indicadores y propiedades .

\ (barra diagonal inversa)

Omite el significado especial de los metacaracteres.

También debe utilizarse el carácter barra diagonal inversa si se desea utilizar un carácter barra diagonal en un literal de expresión regular, como /1\/2/ (para detectar el carácter 1, seguido del carácter barra diagonal, seguido del carácter 2).

. (punto)

Detecta cualquier carácter individual.

El punto detecta un carácter de nueva línea ( \n ) solo si está establecido el indicador s ( dotall ). Para más información, consulte Indicadores y propiedades .

* (asterisco)

Detecta el elemento anterior repetido cero o más veces.

Para más información, consulte Cuantificadores .

+ (más)

Detecta el elemento anterior repetido una o más veces.

Para más información, consulte Cuantificadores .

? (signo de interrogación)

Detecta el elemento anterior repetido cero veces o una sola vez.

Para más información, consulte Cuantificadores .

( y )

Define grupos dentro de la expresión regular. Los grupos se pueden utilizar para:

  • Para limitar el ámbito del alternador |: /(a|b|c)d/

  • Para definir el ámbito de un cuantificador: /(walla.){1,2}/

  • En referencias a elementos detectados previamente. Por ejemplo, en la siguiente expresión regular, \1 detectará lo que se haya detectado en el primer grupo delimitado con paréntesis del patrón:

  • /(\w*) se repite: \1/

Para más información, consulte Grupos .

[ y ]

Define una clase de caracteres, que especifica posibles coincidencias para un solo carácter:

/[aeiou]/ detecta cualquiera de los caracteres especificados.

En las clases de caracteres se utiliza un guion ( - )para designar un rango de caracteres:

/[A-Z0-9]/ detecta cualquier letra mayúscula (A a Z) o cualquier dígito (0 a 9).

Además, se debe insertar una barra diagonal inversa para omitir el significado especial de los caracteres ] y

- caracteres:

/[+\-]\d+/ detecta + o - antes de uno o más dígitos.

En las clases de caracteres, los caracteres que normalmente metacaracteres se tratan como caracteres normales (no metacaracteres), sin necesidad de utilizar una barra diagonal inversa:

/[$]/ £ detecta $ o £.

Para más información, consulte Clases de caracteres .

| (barra vertical)

Se utiliza para la alternancia, a fin de detectar la parte de la izquierda o la parte de la derecha:

/abc|xyz/ detecta abc o xyz .

Metasecuencias

Las metasecuencias son secuencias de caracteres que tienen un significado especial en un patrón de expresión regular. En la tabla siguiente se describen estas metasecuencias:

Metasecuencia

Descripción

{ n }

{ n ,}

y

{ n , n }

Especifica un cuantificador numérico o un rango de cuantificadores para el elemento anterior:

/A{27}/ detecta el carácter A repetido 27 veces.

/A{3,}/ detecta el carácter A repetido 3 o más veces.

/A{3,5}/ detecta el carácter A repetido entre 3 y 5 veces.

Para más información, consulte Cuantificadores .

\b

Detecta la posición entre un carácter de palabra y un carácter de otro tipo. Si el primer o el último carácter de la cadena es un carácter de palabra, también detecta el principio o el final de la cadena.

\B

Detecta la posición entre dos caracteres de palabra. También detecta la posición entre dos caracteres de otro tipo.

\d

Detecta un dígito decimal.

\D

Detecta cualquier carácter que no sea un dígito.

\f

Detecta un carácter de salto de página.

\n

Detecta el carácter de nueva línea.

\r

Detecta el carácter de retorno.

\s

Detecta cualquier carácter de espacio en blanco (un carácter de espacio, tabulación, nueva línea o retorno).

\S

Detecta cualquier carácter que no sea un espacio en blanco.

\t

Detecta el carácter de tabulación.

\u nnnn

Detecta el carácter Unicode con el código de carácter especificado por el número hexadecimal nnnn . Por ejemplo, \u263a es el carácter smiley.

\v

Detecta un carácter de avance vertical.

\w

Detecta un carácter de palabra ( AZ –, az –, 0-9 o _ ). Hay que tener en cuenta que \w no detecta caracteres que no sean los del idioma inglés, como é , ñ o ç .

\W

Detecta cualquier carácter que no sea un carácter de palabra.

\\x nn

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