我有这样的字符串

5 +var +"HEH"
5 +"HEllo!"
5


我需要用RegEx解析它,因此我需要一个数组

['5', '+', 'var', '+', '"HEH"']

['5', '+', '"HEH"']

['5']

我尝试过类似的东西

/(".+"|\d(?:\.\d+)*)(?:\s*(\+)\s*(".+"|\d(?:\.\d+)*|\w+))*/


但它仅返回第一个匹配组和最后一个。

['5', '+', '"HEH"']

['5', '+', '"HEllo!"']

['5']

!更新
.split()不能使用,因为可以在没有空格的情况下写入解析值。抱歉,说明不完整

最佳答案

为什么只需要正则表达式使用split()



var a ='5 + var + "HEH"'

console.log(a.split(" "))





正则表达式方法尝试此模式(\d+)|"(\w+)"|(\w+)|(\+|-|\*|\/|=|>|<|>=|<=|&|\||%|!|\^|\(|\))

Demo

09-19 23:17