0

私は少しPerlの初心者で、テキストからいくつかのゼロを取り除く方法を見つけようとしています。行は次のようになります。

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

}

よろしくお願いします。

4

2 に答える 2

2

これは、文字列内の浮動小数点数を切り捨てる一般的な方法です。

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

評価を使用して、sprintf内部置換を使用して、キャプチャされたものをフォーマットします。これにより、すべての数値がこの形式に強制変換されることに注意してください。

問題を処理するためのより具体的な方法は次のとおりです。

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

(keep)エスケープを使用して、\K数字の後にピリオドとゼロを保持し、その文字列の後の後続のすべてのゼロを削除します。

于 2013-02-07T02:28:42.247 に答える
1

簡単にこれはどうですか:

$data =~ s/0+$/0/;
于 2013-02-07T01:45:24.093 に答える