Saltar al contenido principal
eLearner.app
Módulo 7 · Lección 4 de 428/32 en el curso~10 min
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.

JS
'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.
JS
'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ú

Ejercicio#regex.m7.l4.e1
Intentos: 0Cargando...

Encuentra cada separador de CSV permisivo: una coma con espacios opcionales alrededor. De esta forma podrías usarlo en split para tokenizar la lista.

Cargando editor...
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

Ejercicio#regex.m7.l4.e2
Intentos: 0Cargando...

Encuentra cada separador de 'espacios o puntos y comas' (uno o más). De esta forma, split dividiría el texto en palabras.

Cargando editor...
Mostrar pista

Combina \s y ; en una clase [\s;] con el cuantificador +.

Solución disponible después de 3 intentos

Desafío adicional

Ejercicio#regex.m7.l4.e3
Intentos: 0Cargando...

Escribe una regex para usar en un split que separe números mientras mantiene los operadores matemáticos `+`, `-`, `*`, `/` como elementos del array.

Cargando editor...
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