我有这样的字符串
n
我需要用RegEx解析它,所以结果我需要一个数组
5 +var +"HEH"
5 +"HEllo!"
5
['5', '+', 'var', '+', '"HEH"']
['5', '+', '"HEH"']
我尝试过像
这样的事情['5']
但它只返回第一个匹配组,最后一个。
/(".+"|\d(?:\.\d+)*)(?:\s*(\+)\s*(".+"|\d(?:\.\d+)*|\w+))*/
['5', '+', '"HEH"']
['5', '+', '"HEllo!"']
!更新
无法使用['5']
,因为可以在没有空格的情况下编写解析值。很抱歉没有完整的说明
答案 0 :(得分:2)
你可以试试这个:
let str_1 = '5 + var + "HEH"';
let str_2 = '5 + "HEllo!"';
let str_3 = '5';
let regex = /\s([\+])\s/;
console.log(str_1.split(regex));
console.log(str_2.split(regex));
console.log(str_3.split(regex));
split()方法将String对象拆分为数组 通过将字符串分成子串来实现字符串。
语法:
str.split([separator[, limit]])
分隔符被视为字符串或正则表达式。
答案 1 :(得分:1)
为什么需要正则表达式只需使用split()
var a ='5 + var + "HEH"'
console.log(a.split(" "))

正则表达式方法尝试此模式(\d+)|"(\w+)"|(\w+)|(\+|-|\*|\/|=|>|<|>=|<=|&|\||%|!|\^|\(|\))
答案 2 :(得分:0)
在任何情况下,您都不需要使用复杂的正则表达式。试试这个 -
首先,替换所有&#34; +&#34;用&#34; +&#34;然后使用split方法。
var str = '5 +var +"HEH"';
str.replace(/ \+/g, " + ");
现在使用split()方法 -
console.log(str.split(" "));
var str = '5 +var +"HEH"';
str = str.replace(/ \+/g, " + ");
console.log(str.split(" "));
&#13;