Crear expresiones regulares

Una expresión regular describe una o más cadenas que deben coincidir al buscar en un cuerpo de texto. La expresión regular actúa como un modelo de caracteres que se compara con el texto que se busca.

La construcción de expresiones regulares se asemeja mucho a la creación de expresiones aritméticas. Se combinan expresiones pequeñas mediante el uso de diversos metacaracteres y operadores para crear expresiones de mayor tamaño.

Los componentes de una expresión regular pueden ser caracteres individuales, juegos de caracteres, intervalos de caracteres u opciones a elegir entre caracteres. También pueden ser cualquier combinación de estos componentes.

Construir una expresión regular

Para construir una expresión regular se colocan los diferentes componentes de la expresión entre un par de delimitadores. En JScript, los delimitadores son un par de caracteres de barra diagonal (/), como se muestra en el ejemplo siguiente.

/expression/

Ejemplos de expresiones regulares

La tabla siguiente contiene ejemplos de expresiones regulares típicas.

Expresión regular

Descripción

/^\s*$/

Coincide con una línea en blanco.

/\d{2}-\d{5}/

Coincide con un número de identificador que está compuesto por dos dígitos, un guión y cinco dígitos adicionales.

/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/

Coincide con una etiqueta HTML.

Caracteres ordinarios

La forma más sencilla de expresión regular es un solo carácter ordinario que se compara con una cadena de búsqueda. Por ejemplo, la expresión regular de un solo carácter A coincide con la letra A siempre que aparezca en la cadena de búsqueda.

A continuación, se muestran algunos ejemplos de expresiones regulares de un único carácter de JScript:

/a/
/7/
/M/

Se pueden combinar varios caracteres únicos para formar una expresión más larga. Por ejemplo, la expresión /the/ coincide con "the" en las cadenas de búsqueda siguientes: "the", "there", "other" y "over the lazy dog".

No se necesita ningún operador de concatenación. Todo lo que se requiere es colocar un carácter detrás de otro.

Metacaracteres

Además de los caracteres ordinarios, una expresión regular puede contener metacaracteres. Un ejemplo de metacarácter es \d, que coincide con un carácter de dígito.

Vea Sintaxis de expresiones regulares para obtener más información.

Los caracteres ordinarios son todos los caracteres imprimibles y no imprimibles que no se han designado explícitamente como metacaracteres. Se incluyen todos los caracteres alfabéticos en mayúsculas y minúsculas, todos los dígitos, todos los signos de puntuación y algunos símbolos.

Coincidir con cualquier carácter

El carácter de punto (.) coincide con cualquier carácter único imprimible o no imprimible de una cadena, excepto el carácter de nueva línea (\n). La expresión regular /a.c/ coincide con "aac", "abc", "acc", "adc", "a1c", "a2c", "a-c" y "a#c".

Para buscar una coincidencia con un punto (.) incluido en la cadena buscada, puede anteponer un carácter de barra diagonal inversa (\) al punto de la expresión. La expresión /filename\.ext/ coincide con "filename.ext".

Listas de caracteres coincidentes

Para crear una lista de caracteres coincidentes, coloque uno o más caracteres individuales entre corchetes ([ ]).

Cualquier carácter incluido en una expresión entre corchetes coincide con un solo carácter en la posición de la expresión regular donde aparece la expresión entre corchetes. Por ejemplo, la expresión /Chapter [12345]/ coincide con "Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4" y "Chapter 5".

Para expresar los caracteres coincidentes mediante un intervalo en vez de los propios caracteres, se puede usar el carácter del guión (-). La expresión /Chapter [1-5]/ es equivalente a /Chapter [12345]/.

Puede buscar todos los caracteres que no estén en la lista o intervalo si incluye un carácter de intercalación (^) al principio de la lista. Por ejemplo, la expresión /[^aAeEiIoOuU]/ coincide con cualquier carácter no vocálico.

Para obtener más información, vea Listas de caracteres coincidentes.

Cuantificadores

Puede usar cuantificadores para especificar una expresión regular en la que un carácter o juego de caracteres se repite un determinado número de veces.

Un cuantificador hace referencia a la expresión inmediatamente anterior (a su izquierda).

Los cuantificadores se escriben entre llaves e incluyen valores numéricos para el número de apariciones mínimo y máximo. Por ejemplo, c{1,2} coincide con 1 o 2 apariciones de la letra c.

Cuando se especifica un solo número, se usa como límite máximo a menos que vaya seguido de una coma. Por ejemplo, c{3} coincide exactamente con 3 caracteres de la letra c y c{5,} coincide con 5 o más apariciones de la letra c.

También hay cuantificadores de un solo carácter, como se muestra en la tabla siguiente.

Cuantificador

Cuantificador explícito

Significado

*

{0,}

Coincide con el elemento anterior cero o más veces.

+

{1,}

Coincide con el elemento anterior una o más veces.

?

{0,1}

Coincide con el elemento anterior cero veces o una vez.

A continuación se ofrecen algunas expresiones de ejemplo junto con las cadenas de búsqueda con las que coinciden.

Expresión regular

Significado del cuantificador

Coincidencias

/Chapter [1-9][0-9]{0,}/ o

/Chapter [1-9][0-9]*/

Coincide con [0-9] cero o más veces.

"Chapter 1", "Chapter 25", "Chapter 401320"

/Chapter [0-9]{1,2}/

Coincide con [0-9] una o dos veces.

"Chapter 0", "Chapter 03", "Chapter 1", "Chapter 25", "Chapter 40"

/Chapter [1-9][0-9]{0,1}/ o

/Chapter [1-9][0-9]?/

Coincide con [0-9] cero veces o una sola vez.

"Chapter 1", "Chapter 25", "Chapter 40"

Para obtener más información, vea Cuantificadores de JScript.

Límites de línea y palabra

Los delimitadores permiten especificar que, para ser una coincidencia, una expresión regular debe aparecer al principio o final de la cadena buscada, o al principio o final de una línea o palabra de la cadena buscada. Para obtener más información, vea Delimitadores.

Especificar alternativas

El carácter "|" especifica que dos o más alternativas representan una coincidencia. Por ejemplo, la expresión regular de JScript /(Chapter|Section) [1-9]/ coincide con "Chapter 1", "Chapter 9" y "Section 2". Para obtener más información, vea Alternancia y subexpresiones.

Usar subcoincidencias

Los paréntesis se usan en una expresión regular para crear una subexpresión. El programa puede recuperar las subcoincidencias resultantes. Para obtener más información, vea Alternancia y subexpresiones.

Puede hacer referencia a una subexpresión dentro de una expresión regular y dentro una cadena de reemplazo. Para obtener más información, vea Referencias inversas en JScript.

Vea también

Conceptos

Programación con expresiones regulares

Sintaxis de expresiones regulares