【发布时间】:2010-02-19 02:48:42
【问题描述】:
什么是处理浮点数的好正则表达式(即像Java的Float)
答案必须符合以下目标:
1) 1.
2) .2
3) 3.14
4) 5e6
5) 5e-6
6) 5E+6
7) 7.e8
8) 9.0E-10
9) .11e12
总之应该是
- 忽略前面的符号
- 要求小数点左边的第一个字符不为零
- 允许小数点两边有 0 个或多个数字
- 允许没有小数点的数字
- 允许科学记数法
- 允许大写或小写“e”
- 允许正或负指数
对于那些想知道的人,是的,这是一个家庭作业问题。我们在我的编译器研究生 CS 课程中收到了这个作业。我已经为课程上交了我的答案,并将其作为对这个问题的答案发布。
[结语] 我的解决方案没有得到充分的评价,因为它处理的小数点左侧不超过 1 位。该作业确实提到了处理 Java 浮点数,即使没有一个示例的小数点左侧多于 1 位。我会在自己的帖子中发布接受的答案。
【问题讨论】:
-
我个人会写一堆单元测试...
-
这些都是很奇怪的要求。这样的表达式不会匹配“0.5”。
标签: regex floating-point