JavaScript:
Usando expresiones regulares
Cómo hacerlo:
Coincidencia Básica
Para empezar, puedes crear un patrón de regex simple y usarlo para encontrar coincidencias en una cadena. Aquí, encontraremos la palabra “código”:
const str = "Me encanta programar en JavaScript.";
const pattern = /código/;
const result = pattern.test(str);
console.log(result); // true
Usando String.prototype.match()
Para recuperar un arreglo de coincidencias:
const matches = str.match(/código/);
console.log(matches[0]); // "código"
console.log(matches.index); // 10
Búsqueda Global
Para encontrar todas las coincidencias, usa la bandera g
:
const globalMatches = str.match(/o/g);
console.log(globalMatches); // ["o", "o", "o"]
Coincidencia sin Importar Mayúsculas o Minúsculas
La bandera i
ignora mayúsculas y minúsculas:
const caseInsensitiveMatch = "JavaScript es divertido".match(/javascript/i);
console.log(caseInsensitiveMatch[0]); // "JavaScript"
Reemplazando Texto
Usa String.prototype.replace()
para reemplazar partes de la cadena:
const newStr = "JavaScript es divertido".replace(/divertido/, "asombroso");
console.log(newStr); // "JavaScript es asombroso"
Usando Grupos
Los grupos pueden capturar partes del patrón:
const groupedPattern = /(\w+) es (\w+)/;
const replaceWithGroups = "JavaScript es divertido".replace(groupedPattern, "$2 es $1");
console.log(replaceWithGroups); // "divertido es JavaScript"
Librerías de Terceros
Aunque las capacidades de regex integradas en JavaScript son poderosas, algunas tareas podrían simplificarse con librerías como XRegExp
. Ofrece sintaxis y banderas adicionales, haciendo patrones complejos más legibles:
// Ejemplo de la librería XRegExp
const XRegExp = require('xregexp');
const str = "Los gatos son fantásticos.";
const unicodeWordMatch = XRegExp.match(str, XRegExp('\\p{L}+'), 'all');
console.log(unicodeWordMatch); // ["Los", "gatos", "son", "fantásticos"]
Este fragmento demuestra el uso de XRegExp
para coincidir todas las palabras Unicode en una cadena, mostrando la capacidad de la librería para manejar conjuntos de caracteres extendidos más allá de las capacidades integradas en JavaScript.