我有这样的字符串
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