Necesito un regEx para hacer coincidir todos los espacios en blanco, excepto los que están dentro de los signos @ para hacer una división correcta.
tengo esta cadena:
[0] == @Item 1@Con la división, necesito la siguiente matriz (con o sin @ en el tercer elemento):
var array = ["[0]","==","@Item 1@"];Con una división simple (" ") obtengo esto:
var array = ["[0]","==","@Item","1@"];Gracias por tu ayuda.
Puedes usar
const text = '[0] == @Item 1@'; console.log( text.match(/(?:@[^@]*@|\S)+/g) ) Vea la demostración de expresiones regulares . El patrón (?:@[^@]*@|\S)+ significa:
(?: - comienzo de un grupo que no captura:@[^@]*@ - un carácter @ , cero o más caracteres que no sean @ y luego un carácter @| - o\S - cualquier carácter que no sea un espacio en blanco)+ - final del grupo, repetir una o más veces. El plano /g le dice a .match() que extraiga todas las ocurrencias.