regex - 通过在 perl 中保留零从给定字符串中删除标点符号
问题描述
我正在尝试使用以下命令从 perl 中的给定字符串中删除标点符号
perl -le '$x=19.10 ; $x=~s/[[:punct:]]//g; print $x'
这给出的输出为:191
它从输入中删除尾随 0。我也想保留。
对于其他数字,它成功返回所有值,例如:
perl -le '$x=19.11 ; $x=~s/[[:punct:]]//g; print $x'
这给出的输出为:1911
在第一种情况下如何保留尾随 0?
解决方案
您将数字19.10000000000000142108547152020037174224854
(最接近十九和十分之一的浮点数)分配给$x
. 然后,您继续对该数字进行字符串化,给出字符串19.1
。从此,您删除了.
give 191
。
你可以使用
my $x = "19.10"; $x =~ s/[[:punct:]]//g;
或者
my $x = 19.10; $x *= 100;