我正在用 C# 创建一个科学计算器,并且我有一组用户可以添加条目的线性函数。我需要预先解析一个数学表达式来检查这些函数以及其他数学函数的使用情况,跟踪函数的名称和 中的内容(...)
,并用它们的评估结果替换它们。
以这个表达式为例:
Ans1+(x*2)-(y^3)+abs(z)-avg(x, 5, Ans2)-my2ndFunc(y - (x * 2))
我写了我自己的正则表达式,我需要在等式中匹配这些:
abs(z)
avg(x, 5, Ans2)
my2ndFunc(y - (x * 2))
我使用Regex Tester v1.5.3对其进行了测试,但它根本不匹配任何项目。这是我使用的正则表达式:
\b([a-z][a-z0-9]*)\((..*)\)\b
什么正则表达式会匹配这些函数并存储函数名和参数内容?此外,如果有人提供有关如何进行匹配和获取捕获组内容的示例代码,那会很酷,但这不是必需的。
编辑 我不需要实际的数学解析器,我有实现调车场算法的muParser。我只需要做一个简单的搜索和替换,数学解析器负责实际的数学运算,我只需要正则表达式来查找要评估的部分。
我只需要一个简单的正则表达式来匹配: myfuncname(any content here)