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+/));