Grupo de expresiones regulares de JavaScript

Shraddha Paghdar 20 junio 2023
Grupo de expresiones regulares de JavaScript

Las expresiones regulares son patrones que coinciden con combinaciones de caracteres o palabras de una cadena determinada. Las expresiones regulares también son objetos en JavaScript.

Estos patrones se definen con test() y exec() de RegExp y con los métodos matchAll(), match(), replaceAll(), replace(), search() y split() de String.

La publicación de hoy aprenderá sobre los grupos de expresiones regulares en JavaScript.

Grupo RegEx en JavaScript

Parte de un patrón se puede encerrar entre paréntesis (...). Esto se conoce como un grupo de captura.

Esto tiene dos efectos:

  1. Puede mantener parte de la coincidencia como un elemento separado en la matriz de resultados.
  2. Si ponemos un cuantificador después de los corchetes, se aplica a los corchetes como un todo.

Sintaxis:

const re = /ab+c/;
const re = new RegExp('ab+c');

La sintaxis anterior muestra el patrón de expresión regular normal. Hay dos formas de aserciones anticipadas: positivas y negativas.

La sintaxis para una anticipación positiva es (?=...). La construcción de una anticipación negativa es (?!...). Un negativo directo afirma que un patrón no sigue ningún patrón en particular.

ES2018 complementa las aserciones anticipadas al integrar aserciones anticipadas en JavaScript. Marcado con (?<=...), una afirmación de retroceso le permite hacer coincidir un patrón solo si otro patrón lo precede.

Puede encontrar más información sobre grupos y rangos en la documentación de grupos y rangos.

Grupos de captura de nombres

Puede agrupar parte de una expresión regular encerrando los caracteres entre paréntesis. Esto le permite limitar la alternancia a solo una parte del patrón o aplicar un cuantificador a todo el grupo.

Además, puede extraer el valor coincidente entre paréntesis para su posterior procesamiento.

El siguiente código da un ejemplo de cómo encontrar un año, mes y fecha en una cadena:

const regEx = /(\d{4})-(\d{2})-(\d{2})/;
const matchedPattern = regEx.exec('2022-04-22');

console.log(matchedPattern[0]);
console.log(matchedPattern[1]);
console.log(matchedPattern[2]);
console.log(matchedPattern[3]);

En el ejemplo anterior, definimos la expresión regular para un año, mes y día. Finalmente, cuando ejecutamos la expresión regular contra la cadena especificada, captura el patrón y lo agrupa con el grupo coincidente.

Debemos recordar que el patrón es para un año, mes y día. Después de ejecutar toda la expresión regular, imprime algo como el siguiente resultado:

Producción :

"2022-04-22"
"2022"
"04"
"22"

La solución al problema anterior es capturar grupos. La versión más avanzada captura grupos utilizando una sintaxis más expresiva en forma de (?<nombre>...):

const regEx = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
const matchedPattern = regEx.exec('2022-03-22');

console.log(matchedPattern.groups);
console.log(matchedPattern.groups.year);
console.log(matchedPattern.groups.month);
console.log(matchedPattern.groups.day);

En el ejemplo anterior, definimos la expresión regular para un año y nombramos su año. Del mismo modo, hemos definido la expresión regular para el mes y el día.

Finalmente, cuando ejecutamos la expresión regular contra la cadena especificada, captura el patrón y lo agrupa con el grupo coincidente. Después de ejecutar toda la expresión regular, imprime algo como el siguiente resultado:

Producción :

{
    day: "22",
    month: "03",
    year: "2022"
}
"2022"
"03"
"22"

También puede acceder al código completo aquí.

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

Artículo relacionado - JavaScript RegEx