首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

验证是否符合四则混合运算的正则表达

2012-03-31 
求一个验证是否符合四则混合运算的正则表达求一个验证是否符合四则混合运算的正则表达[解决办法]探讨貌似

求一个验证是否符合四则混合运算的正则表达
求一个验证是否符合四则混合运算的正则表达

[解决办法]

探讨
貌似我写这个2楼的是匹配不出来的。

可以给楼主一个解决方案,如果为了验证是否匹配四则运算,可以用 new DataTable().Compute("表达式")

如果得出结果则匹配成功,若得不了,说明匹配失败

[解决办法]
(?R<E>)(
(?<E>(?R<T>)(?R<E1>))
(?<E1>([+*/-](?R<T>)(?R<E1>))|.{0})
(?<T>(\((?R<E>)\))|(?R<number>))
(?<number>[+|-]?\d*\.?\d+(e[+-]?\d+)?)
){0}
这个可能可以用
可以匹配这样
0123456789.0e-2++.22222e-2--.2e-2/-2*(-2*(+2*+2+(.3)))
变态的四则运算。
原理用的是消除左递归。
E->TE1
E1->(+|-|*|/)TE1|e
T->(E)|NUMBER

热点排行