我有一个像这样的字符串:
let str = "log(5)+sin(5)*π-cos(5)/√(4)*4^2";
我想将其转换为这样的数组:
var newArr = ["log(", "5", ")", "+", "sin(", "5", ")", "*", "π", "-", "cos(", "5", ")", "/", "√(", "4", ")", "*", "4", "^", "2"];
我尝试使用Split,但是没有得到想要的结果
str.split(/(\b)/g)
答案 0 :(得分:2)
您可以通过正则表达式解决它:
let regex = /[A-Za-z√(]+|\d+|[)]|[+-/*^]|[π]/gm;
let str = `log(5)+sin(5)*π-cos(5)/√(4)*4^2`;
var match = str.match(regex);
console.log(match);
regex101上的详细信息:https://regex101.com/r/wtg3fl/1