I need a regEx to match all whitespaces except those inside @ signs to make a correct split.
I have this string:
[0] == @Item 1@
With the split I need the following array (with or without @ in 3rd element):
var array = ["[0]","==","@Item 1@"];
With a simple split(" ") I get this:
var array = ["[0]","==","@Item","1@"];
Thank you for your help.
You can use
const text = '[0] == @Item 1@';
console.log( text.match(/(?:@[^@]*@|\S)+/g) )
See the regex demo. The (?:@[^@]*@|\S)+ pattern means:
(?: - start of a non-capturing group:
@[^@]*@ - a @ char, zero or more chars other than @ and then a @ char| - or\S - any non-whitespace char)+ - end of the group, repeat one or more times.The /g flat tells .match() to extract all occurrences.