Regex '\ s + - \ s * | \ s * - \ s +' does not work correctly
I am parsing a large list with node.js app and have this code
sizeCode = dbfr.CN_DESC.split('\s+-\s*|\s*-\s+')
it doesn't work as it returns
[ 'WOMEN\ CC CROPPED TOP T-SHIRT - MELANGE GREY - S' ] [ 'WOMEN\ CC CROPPED TOP T-SHIRT - MELANGE GREY - M' ] [ 'WOMEN\ CC CROPPED TOP T-SHIRT - MELANGE GREY - L' ] [ 'WOMEN\ CC CROPPED TOP T-SHIRT - WHITE - S' ] [ 'WOMEN\ CC CROPPED TOP T-SHIRT - WHITE - M' ] [ 'WOMEN\ CC CROPPED TOP T-SHIRT -WHITE - L' ] [ 'WOMEN\ CC LOW CUT RACER BACK TUNIC VEST -WHITE - M' ] [ 'WOMEN\ CC LOW CUT RACER BACK TUNIC VEST - WHITE -L' ]
where as if i just used
sizeCode = dbfr.CN_DESC.split(' - ')
works correctly, the problem is that in some cases I may have a different position for the "-" character, for example:
[ 'WOMEN\ CC CROPPED TOP T-SHIRT -WHITE - L' ] [ 'WOMEN\ CC LOW CUT RACER BACK TUNIC VEST -WHITE - M' ] [ 'WOMEN\ CC LOW CUT RACER BACK TUNIC VEST - WHITE -L' ]
but I don't want to split the T-SHIRT for example.
any advice that is much appreciated
+3
source to share
1 answer
You must use regex separator in regex:
sizeCode = dbfr.CN_DESC.split(/\s+-\s*|\s*-\s+/g)
Demo version of RegEx
+1
source to share