如何校验表达式的有效性?

liujiantao 2003-08-19 08:46:11
最近在做表达式的定义和计算,计算有很多方法:
1.codedom,2.vsa,3.sql,4.列计算,5.自己解析,不知道全不全,
但是在表达式定义的时候需要校验用户定义的表达式是否有效,
不知道该用什么方法,请高手指教?
...全文
63 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujiantao 2003-08-21
  • 打赏
  • 举报
回复
谢谢各位的指教,有没有比较通用的办法,进一步明确我的需求:
首先定义表达式公式,保存到数据库里,等用的时候取出公式,对里面的变量赋值然后计算。在用户定义完公式保存到数据库之前需要对公式进行校验,看看是否合法!
Jinniu 2003-08-20
  • 打赏
  • 举报
回复
UP!
xixigongzhu 2003-08-20
  • 打赏
  • 举报
回复
我实习的时候,头要我做的第一件事就是处理表达式。非常头痛,很多细节问题很容易忽视。
xixigongzhu 2003-08-20
  • 打赏
  • 举报
回复
如果你是自己实现的话,用扫描,就是在处理的同时判断输入对不对。

必须先词法分析,就是判断输入是否正确,同时将分析的数据保存。
然后处理保存的数据,得出表达式的值。

一般的都是这样做的。

从速度考虑,用正则表达式是肯定不行的。
robin_xin_xin 2003-08-20
  • 打赏
  • 举报
回复
up
saucer 2003-08-19
  • 打赏
  • 举报
回复
the classic method is to use yacc/lex, see

http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=1a00ca30-fb47-41fc-83be-77e0f2185b37
win911 2003-08-19
  • 打赏
  • 举报
回复
对,正则表达式
elite2018 2003-08-19
  • 打赏
  • 举报
回复
可以 使用 正则表达式 亚 , 非常 通用 !
维她奶 2003-08-19
  • 打赏
  • 举报
回复
gz
雪狼1234567 2003-08-19
  • 打赏
  • 举报
回复
如果表达式复杂的话就只好自己解析啦,这是可用用栈来验证

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧