正则表达式,用于计算或验证用户在C#中输入的表达式
本文关键字:输入 表达式 用户 用于 计算 验证 正则表达式 | 更新日期: 2023-09-27 18:28:08
我想使用Regex拆分用户输入的条件/关系/逻辑表达式,以便在运行时评估用户输入的表达式。下面是用户输入的几个示例表达式。
Expression1 : (a==b && (c >= 10 || d!=0)) || ( a > b)
Expression2 : (c==d && a==b)
现在我想在字符串数组中拆分整个表达式,例如,以表达式2为例,它就像
string str1 = c==d;
string str2 = a==b;
用户输入的表达式可能有多个条件,因此不知道如何继续。
感谢
正则表达式不适合此作业。
如果您希望能够计算任意表达式,则需要实现或使用至少一种简单形式的解析器。
在过去,我曾将NCalc用于简单的表达式评估任务。它非常易于使用,支持开箱即用的所有运算符,甚至可以使用变量。
还有其他可用的库,这只是一个例子。您也可以自己实现解析器,但它可能比您想象的更棘手。