JavaScript RegEx拆分数学运算符,同时将它们保持为单独的项目

时间:2017-07-11 05:12:43

标签: javascript regex

我有这样的字符串

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'],因为可以在没有空格的情况下编写解析值。很抱歉没有完整的说明

3 个答案:

答案 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+)|(\+|-|\*|\/|=|>|<|>=|<=|&|\||%|!|\^|\(|\))

Demo

答案 2 :(得分:0)

在任何情况下,您都不需要使用复杂的正则表达式。试试这个 -

首先,替换所有&#34; +&#34;用&#34; +&#34;然后使用split方法。

var str = '5 +var +"HEH"';
str.replace(/ \+/g, " + ");

现在使用split()方法 -

console.log(str.split(" ")); 

&#13;
&#13;
var str = '5 +var +"HEH"';
str = str.replace(/ \+/g, " + ");
console.log(str.split(" "));
&#13;
&#13;
&#13;