Búsqueda de sitios web

Typescript string.split con regex con carácter seguido de espacio y solo espacio


Tengo una cadena de este tipo:

string = "test1; test2, test3 test4;test5"

Necesito dividirlo y obtener un arreglo con las 5 palabras. Hago esto:

let arrayTo:string[] = string.split(/;|,|, |; | /);

pero lo que obtengo es un arreglo de 7 elementos, dos de ellos son cadenas vacías:

["test1","","test2","","test3","test4","test5"]

Me gustaría considerar , y ; seguidos de espacio en blanco como una sola entidad y dividir en ellos, pero con esta expresión regular también se divide en el espacio en blanco que sigue a estos caracteres. Pero también necesito dividir solo por espacio en blanco (en este caso, divide correctamente test3 y test4 en dos entidades).
¿Cuál es la manera correcta de hacer esto?

Respuesta #1

Puede usar

string.split(/[;,]\s*|\s+/)

La expresión regular coincide

  • [;,]\s* - un ; o , y luego 0 o más espacios en blanco
  • | - o
  • \s+ - 1+ espacios en blanco.

Demostración de JS:

string = "test1; test2, test3 test4;test5";
console.log(string.split(/[;,]\s*|\s+/));