Grupos y rangos
Los grupos y rangos indican grupos y rangos de caracteres de expresión.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Tipos
Caracteres | Significado |
---|---|
x|y |
Coincide con "x" o "y". Por ejemplo, |
[xyz] |
Un juego de caracteres. Coincide con cualquiera de los caracteres incluidos. Puedes especificar un rango de caracteres mediante el uso de un guión, pero si el guión aparece como el primero o último caracter entre corchetes, se toma como un guión literal para incluirse en el juego de caracteres como un caracter normal. También es posible incluir una clase de caracteres en un juego de caracteres. Por ejemplo, Por ejemplo, Por ejemplo, |
|
Un juego de caracteres negado o complementado. Es decir, hallan cualquier cosa que no esté encerrada entre corchetes. Puedes especificar un rango de caracteres mediante el uso de un guión, pero si el guión aparece como el primero o último caracter entre corchetes, se toma como un guión literal para incluirse en el juego de caracteres como un caracter normal. Por ejemplo, El caracter ^ también puede indicar el |
(x) |
Grupo de captura: Coincide con Una expresión regular puede tener varios grupos de captura. En los resultados, coincide con los grupos capturados normalmente en un arreglo cuyos miembros están en el mismo orden que los paréntesis de la izquierda en el grupo capturado. Este suele ser solo el orden de los propios grupos capturados. Esto se vuelve importante cuando los grupos capturados están anidados. Se accede a las coincidencias utilizando el índice de los elementos del resultado ( Los grupos de captura tienen una penalización de rendimiento. Si no necesitas que se recupere la subcadena coincidente, prefiere los grupos de no captura (ve más abajo).
|
\n |
Donde "n" es un número entero positivo. Una referencia inversa a la última subcadena que coincide con el paréntesis |
\k<Nombre> |
Una referencia inversa a la última subcadena que coincide con el grupo de captura Nombrado especificado por Por ejemplo, aquí se usa |
(?<Nombre>x) |
Grupo de captura con nombre: Coincide con "x" y la almacena en la propiedad de grupos de las coincidencias devueltas con el nombre especificado por Por ejemplo, para extraer el código de área de Estados Unidos de un número de teléfono, podrías usar |
(?:x) |
Grupo de no captura: Coincide con "x" pero no recuerda la coincidencia. La subcadena coincidente no se puede recuperar de los elementos del arreglo resultante ([1], ..., [n] ) o de las propiedades predefinidas del objeto RegExp ($1, ..., $9 ). |
Ejemplos
Conteo de vocales
var aliceExcerpt = "Hubo un largo silencio después de esto, y Alicia solo podía escuchar susurros de vez en cuando.";
var regexpVowels = /[aeiouy]/g;
console.log("Número de vocales minúsculas: ", aliceExcerpt.match(regexpVowels).length);
// Número de vocales: 34
Uso de grupos
let personList = `First_Name: John, Last_Name: Doe
First_Name: Jane, Last_Name: Smith`;
let regexpNames = /First_Name: (\w+), Last_Name: (\w+)/mg;
let match = regexpNames.exec(personList);
do {
console.log(`Hola ${match[1]} ${match[2]}`);
} while((match = regexpNames.exec(personList)) !== null);
Uso de grupos con nombre
let personList = `First_Name: John, Last_Name: Doe
First_Name: Jane, Last_Name: Smith`;
let regexpNames = /First_Name: (?<firstname>\w+), Last_Name: (?<lastname>\w+)/mg;
let match = regexpNames.exec(personList);
do {
console.log(`Hola ${match.groups.firstname} ${match.groups.lastname}`);
} while((match = regexpNames.exec(personList)) !== null);
Nota: No todos los navegadores admiten esta función; consulta la tabla de compatibilidad
.
Especificaciones
Compatibilidad del navegador
Para obtener información sobre la compatibilidad del navegador, consulta la tabla principal de compatibilidad de expresiones regulares
.