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:
- Puede mantener parte de la coincidencia como un elemento separado en la matriz de resultados.
- 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 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