Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript regexp将基本算术与字母匹配,并将它们分组_Javascript_Regex_Reactjs - Fatal编程技术网

Javascript regexp将基本算术与字母匹配,并将它们分组

Javascript regexp将基本算术与字母匹配,并将它们分组,javascript,regex,reactjs,Javascript,Regex,Reactjs,你好 我必须解析一些算术运算,如: A + b * 0.75 + 3 和c-Ff-1/2 我需要把不同的元素分组 所以我需要分析一下 let var1 = 'A'; let operator1 = '+'; let var2 = 'b'; let operator2 = '*'; let var3 = 0.75; let operator3 = '+'; let var4 = 3; 所以我可以将我的A变量与我的预定义变量进行匹配,并进行一些计算 我以[^+/*-]+结束,但它 捕获空间 不会

你好

我必须解析一些算术运算,如:

A + b * 0.75 + 3
和c-Ff-1/2

我需要把不同的元素分组

所以我需要分析一下

let var1 = 'A';
let operator1 = '+';
let var2 = 'b';
let operator2 = '*';
let var3 = 0.75;
let operator3 = '+';
let var4 = 3;
所以我可以将我的A变量与我的预定义变量进行匹配,并进行一些计算

我以[^+/*-]+结束,但它

捕获空间 不会将+-/*放在单独的组中 我不知道如何处理括号
有什么建议吗

好的,下面是两种解析示例表达式的尝试:

函数parseStringAstr{ var vars=[];//数值常量、符号名 var ops=[];//数学运算符 str .replace/[\+\-\*\/\\]/g,'$1'//强制在操作周围使用空格 .split/+///在空格上拆分 .filterBoolean//删除空项 .forEachfunctionitem{ ifitem.match/[\+\-\*\/\\]/{ ops.1项目; }否则{ vars.pushitem; } }; 返回{ vars:vars, 行动:行动 } } 函数parseringbstr{ var expr=[];/{val,op} str .replace/[\+\-\*\/\\]/g,'$1'//强制在操作周围使用空格 .split/+///在空格上拆分 .filterBoolean//删除空项 .forEachfunctionitem{ ifitem.match/[\+\-\*\/\\]/{ expr.push{val:,op:item}; }否则{ expr.push{val:item,op:}; } }; 返回表达式; } 风险值str1=‘A+b*0.75+3’; var str2=‘c-Ff-1/2’; var result1a=parseStringAst1; log'result1a:'+JSON.stringifyresult1a,null',' var result2a=parseStringAst2; log'result2a:'+JSON.stringifyresult2a,null',' var result1b=parseStringBstr1; log'result1b:'+JSON.stringifyresult1b,null',' var result1b=parseStringBstr2; log'result1b:'+JSON.stringifyresult1b,null',读一下-A+b*-0.75+3怎么样?