2013-02-07 119 views
0

我是一位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 

} 

許多在此先感謝。

回答

1

如何簡單:

$data =~ s/0+$/0/; 
+0

這會影響5006.000不正確,我相信。 –

+0

@ David-SkyMesh:你確實沒錯,我會糾正它:) – Wolph

+0

謝謝WoLpH。這工作。看起來好像我可能會把「〜」弄糊塗了。乾杯 – MicrobicTiger

2

這是截取字符串內浮點數的通用方法:使用sprintf替換裏面格式化無論是拍攝

s/([\d.]+)/ sprintf '%.1f', $1 /ge 

,通過使用評價。請注意,這會將所有數字強制轉換爲此格式。

更具體的方式來處理這個問題將是

s/\d+\.0\K0*//g 

使用\K(保持)逃生保存和數字隨後期零,並刪除該字符串後,所有的後續零。