我有点像perl noob,并试图找出如何从一段文本中删除一些零。 该行看起来像这样:
76.000 to 80.000
并且我正在尝试删除零以使其看起来像这样
76.0 to 80.0
但不能为我的生活获得正则表达式的工作。
这就是我所拥有的,
if ($data =~ m/00/) # This is working
{
$data = s/(.*)\00(\s\[to]\s)(.*)\00/($1)($3)($4)/; # This isn't
}
非常感谢提前。
答案 0 :(得分:2)
这是截断字符串中浮点数的一般方法:
s/([\d.]+)/ sprintf '%.1f', $1 /ge
通过使用评估,在替换中使用sprintf
来格式化捕获的内容。请注意,这会将所有数字强制转换为此格式。
处理问题的更具体方法是
s/\d+\.0\K0*//g
使用\K
(保持)转义来保留数字,后跟句点和零,并删除该字符串后的所有后续零。
答案 1 :(得分:1)
这个怎么样:
$data =~ s/0+$/0/;