regex - 删除前导零但不是全零

标签 regex perl

如果该值仅包含零,如何删除所有前导零但保留最后一个零?

例如:

my $number = "0000";

我想拥有:
my $number = "0";

我试过:
$number =~ s/^0*//; 

但这当然会删除这种情况下的所有零。

最佳答案

这应该有效:

$number =~ s/^0*(\d+)$/$1/;

0    -> 0
0000 -> 0
0001 -> 1

编辑:事实证明这有点太复杂了。这也应该有效:
$number =~ s/0*(\d+)/$1/;

但我不确定哪个更好,取决于用例。

请查看来自 Oesor 的答案:它也很可爱,不涉及正则表达式。

关于regex - 删除前导零但不是全零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5678455/

相关文章:

javascript - 搜索并替换 unicode 字符

JavaScript 全文搜索正则表达式

php - 带有序通配符的 MySQL 搜索,并提取它们的值

perl - 在 Perl 中从大文件中删除一行

perl - 如何在 perl 脚本中删除扩展名

Perl 哈希、数组和引用

","但不是 ", "的 Java 正则表达式

javascript - 如何使用javascript中的正则表达式替换cookie字符串中的cookie值

使用哈希和哈希引用的 Perl 速度比较

perl - 如何更改 MakeMaker 的默认 CFLAGS