我正在寻找一个规范化十进制数的正则表达式。当我说标准化时,我的意思是删除所有前导零,以及小数点后的所有尾随零。
例如:
0.0 -> 0
1.230 -> 1.23
00123 -> 123
012.30400 -> 12.304
0102 --> 102"
到目前为止,我已经提出了这个
; |((小于=,^):????[0 + - ] +(= 0(:,| \乙| $))| 0 +(= [1-9]) )| .0+ \ C | \ B0 +(= \ d * \ b)| \乙|(小于???= [1-9])0 +(=,| $)
0.1的唯一问题是它返回.1否则它会起作用
答案 0 :(得分:0)
如果每行只有一个条目,请尝试
^0*(\d+(?:\.(?:(?!0+$)\d)+)?)
如果您要全部扫描,可以尝试
\b0*(\d+(?:\.(?:(?!0+\b)\d)+)?)
他们都捕获了第1组的数字。
如果您要删除除数字之外的所有内容,请替换
^0*(\d+(?:\.(?:(?!0+$)\d)+)?).*$
与第1组。
答案 1 :(得分:0)
简单的替换就足够了:
^0+|(\.[0-9]+)0+$
替换将是捕获组1。