JScript  

Sintaxis de expresión regular

Una expresión regular es un modelo de texto formado por caracteres ordinarios (por ejemplo, letras de la a a la z) y caracteres especiales, conocidos como metacaracteres. El modelo describe una o varias cadenas coincidentes al buscar en un cuerpo de texto. La expresión regular se utiliza como plantilla para cotejar un modelo de caracteres con la cadena que se está buscando.

A continuación se incluyen algunos ejemplos de expresiones regulares comunes:

JScript VBScript Coincidencias
/^\[ \t]*$/ "^\[ \t]*$" Coincide con una línea en blanco.
/\d{2}-\d{5}/ "\d{2}-\d{5}" Valida un número de identificador que consta de dos dígitos, un guión y otros cinco dígitos.
/<(.*)>.*<\/\1>/ "<(.*)>.*<\/\1>" Coincide con una etiqueta HTML.

En la tabla siguiente se incluye una lista completa de los metacaracteres y su comportamiento en el contexto de las expresiones regulares:

Carácter Descripción
\ Marca el carácter siguiente como un carácter especial, un literal, una referencia inversa o un código de escape octal. Por ejemplo, 'n' coincide con el carácter "n". '\n' coincide con un carácter de nueva línea. La secuencia '\\' coincide con "\" y "\(" coincide con "(".
^ Coincide con la posición al comienzo de la cadena de entrada. Si se establece la propiedad Multiline del objeto RegExp, ^ también coincide con la posición que sigue a '\n' o '\r'.
$ Coincide con la posición al final de la cadena de entrada. Si se establece la propiedad Multiline del objeto RegExp, $ también coincide con la posición que antecede a '\n' o '\r'.
* Coincide con la subexpresión precedente cero o más veces. Por ejemplo, zo* coincide con "z" y "zoo". * es equivalente a {0,}.
+ Coincide con la subexpresión precedente una o más veces. Por ejemplo, 'zo+' coincide con "zo" y "zoo", pero no con "z". + es equivalente a {1,}.
? Coincide con la subexpresión precedente cero o una vez. Por ejemplo, "da(do)?" coincide con "da" en "da" o en "dado". ? es equivalente a {0,1}
{n} n es un entero no negativo. Coincide exactamente n veces. Por ejemplo, 'o{2}' no coincide con 'o' en "doy", pero coincide con las dos oes en "cooperar".
{n,} n es un entero no negativo. Coincide al menos n veces. Por ejemplo, 'o{2,}' no coincide con "o" en "doy" pero coincide con todas las oes en "goooool". 'o{1,}' es equivalente a 'o+'. 'o{0,}' es equivalente a 'o*'.
{n,m} m y n son enteros no negativos, donde n <= m. Coincide al menos n veces y m como máximo. Por ejemplo, "o{1,3}" coincide con las tres primeras oes en "gooooool". 'o{0,1}' es equivalente a 'o?'. Tenga en cuenta que no puede poner un espacio entre la coma y los números.
? Cuando este carácter sigue inmediatamente a cualquiera de los otros cuantificadores (*, +, ?, {n}, {n,}, {n,m}), el modelo de coincidencia es no expansivo. Un modelo no expansivo coincide lo mínimo posible con la cadena buscada, mientras que el modelo expansivo predeterminado coincide tanto como sea posible con la cadena buscada. Por ejemplo, en la cadena "oooo", 'o+?' coincide con una única "o", mientras que en 'o+' coinciden con todas las oes.
. Coincide con cualquier carácter único excepto "\n". Para coincidir con cualquier carácter incluido '\n', utilice un modelo como '[.\n]'.
(modelo) Coincide con el modelo y captura la coincidencia. La coincidencia capturada se puede recuperar desde la colección Matches resultante, mediante la colección SubMatches de VBScript o las propiedades $0$9 de JScript. Para que coincidan los caracteres paréntesis, ( ), utilice '\(' o '\)'.
(?:modelo) Coincide con el modelo pero no captura la coincidencia, es decir, es una coincidencia sin captura que no se almacena para un posible uso posterior. Es útil para la combinación de partes de un modelo con el carácter disyuntivo "or" (|). Por ejemplo, 'industr(?:ia|ias) es una expresión más económica que 'industria|industrias'.
(?=modelo) La búsqueda anticipada positiva coincide con la cadena de búsqueda en cualquier punto donde empiece una cadena que coincida con el modelo. Es una coincidencia sin captura, es decir, no se captura la coincidencia para un posible uso posterior. Por ejemplo 'Windows (?=95|98|NT|2000)' coincide con "Windows" en "Windows 2000" pero no con "Windows" en "Windows 3.1". La búsqueda anticipada no consume caracteres, es decir, después de que se produzca una coincidencia, la búsqueda de la siguiente cadena empieza inmediatamente después de la última coincidencia, no después de los caracteres que componen la cadena de búsqueda anticipada.
(?!modelo) La búsqueda anticipada negativa coincide con la cadena de búsqueda en cualquier punto donde empiece una cadena que no coincida con el modelo. Es una coincidencia sin captura, es decir, no se captura la coincidencia para un posible uso posterior. Por ejemplo 'Windows (?!95|98|NT|2000)' coincide con "Windows" en "Windows 3.1" pero no con "Windows" en "Windows 2000". La búsqueda anticipada no consume caracteres, es decir, después de que se produzca una coincidencia, la búsqueda de la siguiente cadena empieza inmediatamente después de la última coincidencia, no después de los caracteres que componen la cadena de búsqueda anticipada.
x|y Coincide tanto con x como con y. Por ejemplo, 'z|loor' coincide con "z" o con "loor". '(z|l)oor' coincide con "zoo" o con "loor".
[xyz] Un conjunto de caracteres. Coincide con cualquiera de los caracteres incluidos. Por ejemplo, '[abc]' coincide con 'a' en "plan".
[^xyz] Un conjunto de caracteres negativo. Coincide con cualquier carácter no incluido. Por ejemplo, '[^abc]' coincide con 'p' en "plan".
[a-z] Un intervalo de caracteres. Coincide con cualquier carácter en el intervalo especificado. Por ejemplo, '[a-z]' coincide con cualquier carácter alfabético en minúsculas en el intervalo desde 'a' hasta 'z'.
[^a-z] Un intervalo de caracteres negativo. Coincide con cualquier carácter que no esté en el intervalo especificado. Por ejemplo, '[^a-z]' coincide con cualquier carácter que no esté en el intervalo desde 'a' hasta 'z'.
\b Coincide con un límite de palabra, es decir, la posición entre una palabra y un espacio. Por ejemplo, 'er\b' coincide con 'er' en "ceder" pero no con 'er' en "verbo".
\B Coincide con algo que no sea un límite de palabra. 'er\B' coincide con 'er' en "verbo" pero no con 'er' en "ceder".
\cx Coincide con el carácter de control indicado por x. Por ejemplo, \cM coincide con Control-M (un carácter retorno de carro). El valor de x debe estar en el intervalo A-Z o a-z. Si no, se supone que c es un carácter literal 'c'.
\d Coincide con un carácter de dígito. Equivalente a [0-9].
\D Coincide con un carácter que no es un dígito. Equivalente a [^0-9].
\f Coincide con un carácter avance de página. Equivalente a \x0c y \cL.
\n Coincide con un carácter de nueva línea. Equivalente a \x0a y \cJ.
\r Coincide con un carácter de retorno de carro. Equivalente a \x0d y \cM.
\s Coincide con cualquier carácter de espacio en blanco: carácter espacio, tabulación, avance de página, etc. Equivalente a [ \f\n\r\t\v].
\S Coincide con cualquier carácter distinto de espacio en blanco. Equivalente a [^ \f\n\r\t\v].
\t Coincide con un carácter de tabulación. Equivalente a \x09 y \cI.
\v Coincide con un carácter de tabulación vertical. Equivalente a \x0b y \cK.
\w Coincide con cualquier carácter de palabra incluido el guión bajo (_). Equivalente a '[A-Za-z0-9_]'.
\W Coincide con cualquier carácter que no sea de palabra. Equivalente a '[^A-Za-z0-9_]'.
\xn Coincide con n, donde n es un valor de escape hexadecimal. Los valores de escape hexadecimales deben tener una longitud de exactamente dos dígitos. Por ejemplo, '\x41' coincide con "A". '\x041' es equivalente a '\x04' & '1'. Permite utilizar códigos ASCII en expresiones regulares.
\num Coincide con num, donde num es un entero positivo. Una referencia inversa a las coincidencias capturadas. Por ejemplo, '(.)\1' coincide con dos caracteres idénticos consecutivos.
\n Identifica tanto un valor de escape octal como una referencia inversa. Si a \n le preceden al menos n subexpresiones capturadas, n es una referencia inversa. En otro caso, n es un valor de escape octal si n es un dígito octal (0-7).
\nm Identifica tanto un valor de escape octal como una referencia inversa. Si a \nm le preceden al menos nm subexpresiones capturadas, nm es una referencia inversa. Si a \nm le preceden al menos n capturas, n es una referencia inversa seguida por el literal m. Si no existe ninguna de las condiciones precedentes, \nm coincide con el valor de escape octal nm cuando n y m son dígitos octales (0-7).
\nml Coincide con el valor de escape octal nml cuando n es un dígito octal (0-3) y m y l son dígitos octales (0-7).
\un Coincide con n, donde n es un carácter Unicode expresado en la forma de cuatro dígitos hexadecimales. Por ejemplo, \u00A9 coincide con el símbolo de copyright (©).
Ayuda de Javascript y Vbscript para Javascripts.astalaweb.com.