作者:kenvilen_106 | 来源:互联网 | 2023-09-25 08:53
什么是可以匹配非零浮点数与任意小数位数的最短正则表达式?什么是可以匹配非零浮点数与任意小数位数的最短正则表达式?它应该接受像这样的数字-1-5.9652-7.00002-0.8-0
什么是可以匹配非零浮点数与任意小数位数的最短正则表达式?
什么是可以匹配非零浮点数与任意小数位数的最短正则表达式?
它应该接受像这样的数字
-1 -5.9652 -7.00002 -0.8 -0.0500 -0.58000 0.01 0.000005 0.9900 5 7.5 7.005
但拒绝诸如此类的结构
. .02 -. -.996 0 -0 0. -0. -0.000 0.00 -- .. + +0 +1 +. +1.26 ,etc
我不需要支持科学记数法,e,E等。
顺便说一句,我使用的语言是C#。
^-?(0.d*[1-9]|[1-9]d*(.d+)?)$
编辑更新以反映新要求(最后小数可以为零)
^-?(0.d*[1-9]d*|[1-9]d*(.d+)?)$
(比使用前瞻更短: ^-?(0.(?=[1-9])d*|[1-9]d*(.d+)?)$
。)
EDIT2如果例如001.000
可以通过
^-?(?=.*[1-9])d+(.d+)?$
这是我经常使用的那个:
(+|-)?([0-9]+.?[0-9]*|.[0-9]+)([eE](+|-)?[0-9]+)?
在PHP示例中使用:
输出:
Array ( [0] => 1.234e4 [1] => [2] => 1.234 [3] => e4 )
-?(?!0)d+(.d+)?
注意:如果你的regexp匹配器没有完成,请记住放^。
请问为什么“最短”? 预编译器RegExp或与非匹配组相同的可能更快。 零测试也可能更快。
您可能希望考虑这些变化 。
上述就是C#学习教程:什么是可以匹配非零浮点数与任意小数位数的最短正则表达式?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—编程笔记