【发布时间】:2014-01-09 10:03:58
【问题描述】:
我需要检查一个数学表达式是否包含指数值,然后将指数值替换为十进制值。
输入:“10993.657030812325*8.20681165367255E-05”
输出:“10993.657030812325*0.0000820681165367255”
我面临的复杂性是在数学表达式中检测它。
检测我拥有的正则表达式的正则表达式是:
(([1-9][0-9]*\.?[0-9]*)|(\.[0-9]+))([Ee][+-]?[0-9]+)?
但是,对于整个表达式匹配 true,是否有直接的方法来解决这个问题,或者我是否必须将其分解并单独检查。
【问题讨论】:
-
你为什么要为此使用正则表达式?无论如何,您可以使用正则表达式来匹配它,然后执行自定义代码来转换它。我确信 .NET 正则表达式库有一个可以调用回调的替换函数。
-
@ThiefMaster:请启发,还能怎么做,我也愿意接受非正则表达式解决方案
-
@ThiefMaster 我想看看它是否有效! (是的,你是对的,it does。)
-
看来,Regex 是用格式化的浮点值替换浮点值的工具。
标签: c# .net regex evaluation expression-evaluation