Skip to main content
 首页 » 编程设计

c#之需要一个正则表达式来检测简单的数学表达式

2024年02月24日34soundcode

我将验证如下简单的数学表达式:

a = 1 + 2 
b = 2.2 
a = b + 5.5 
a = b - -5.5 
a = -1 + 2 
a = -2.4 
a = 3.5 / 0.2 + 1 
a = 3 * -2.1 

注意:运算符优先级并不重要!

我尝试了以下表达式,但我一无所获!!!

for digits: ^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$ 
for operators: [-]|[+]|[*]|[/] 
for variables: [a-z]+|[A-Z]+ 

我将这些表达式放在 C# 字符串变量中,并使用 .net Regex.Matches(...) 来查找匹配项。但是我什么都没有!

请您参考如下方法:

这不是正则表达式的好工作。如果您想评估真正的数学表达式,您将无法想出可以处理所有情况的正则表达式。正如 Carl Norum 所说,这是关于为什么你不能解析 html with regex 的类似讨论。 .