Lecciones del módulo (4/4)
Split con regex
String.prototype.split(separator) acepta no solo una cadena fija sino también una regex como separador. Esto la convierte en una herramienta muy potente para tokenizar texto estructurado.
'uno, due,tre quattro'.split(/[,\s]+/);
// ["uno", "due", "tre", "quattro"]La regex /[,\s]+/ coincide con "uno o más de coma o espacio en blanco": split divide en cualquier delimitador compuesto.
Casos típicos
- CSV permisivo:
text.split(/\s*,\s*/)para manejar espacios alrededor de las comas. - Tokenizador simple:
text.split(/\s+/)para extraer palabras. - Mantener el separador: si la regex contiene grupos de captura, el contenido de los grupos se incluye en el array resultante.
'a=1; b=2; c=3'.split(/(;)\s*/);
// ["a=1", ";", "b=2", ";", "c=3"]Sin el grupo (), el punto y coma desaparecería. Con (;) lo conservas en el resultado.
Conservar separadores en operaciones split
Si colocas los separadores del split dentro de paréntesis de captura, la salida de String.prototype.split incluirá los propios separadores como elementos en el array final, en lugar de descartarlos.
Pruébalo tú
Encuentra cada separador de CSV permisivo: una coma con espacios opcionales alrededor. De esta forma podrías usarlo en split para tokenizar la lista.
Mostrar pista
Usa \s* antes y después de la coma para absorber cualquier espacio opcional.
Solución disponible después de 3 intentos
Ejercicio de repaso
Encuentra cada separador de 'espacios o puntos y comas' (uno o más). De esta forma, split dividiría el texto en palabras.
Mostrar pista
Combina \s y ; en una clase [\s;] con el cuantificador +.
Solución disponible después de 3 intentos
Desafío adicional
Escribe una regex para usar en un split que separe números mientras mantiene los operadores matemáticos `+`, `-`, `*`, `/` como elementos del array.
Mostrar pista
Enciérralos en una clase de caracteres de operadores matemáticos dentro de paréntesis de captura para preservarlos en el array de split.
Solución disponible después de 3 intentos