我试图获得一个函数数组,以及vanilla JS中任何数学公式中的变量数组:
样本:
1+3*9/cos(4+2*x/6+pol)+
BDLIRE(longueur2)+2*8+sin(2)
+g()获取我使用的函数:/([a-zA-Z]+)(?=[(])/gm https://regex101.com/r/fT3iM7/1
为了得到我尝试过的vars:/([a-zA-Z]+[a-zA-Z0-9]?)(?!\()/gm https://regex101.com/r/mG2fQ2/1
但是正如您所看到的,它忽略了匹配的最后一个字符,然后是一个(字符,所以我有点被正则表达式所困扰,来匹配变量。
(谢谢你的帮助:)
发布于 2015-04-22 16:18:59
您不能使用RegEx解析算术表达式,也许可以,但您将有一个零碎的实现,编写它将使您疯狂。
你需要查看解析器。看看PEG.js,编写编译成JS的解析器是一个很容易使用的框架,所以它是"vanilla“(不管你说的是什么意思.):
http://pegjs.org/
https://stackoverflow.com/questions/29803066
复制相似问题