Remove leading zeroes but not all zeroes

后端 未结 7 1506
借酒劲吻你
借酒劲吻你 2020-12-18 21:13

How can I remove all the leading zeroes but leave a final zero if the value only contains zeroes?

for example:

my $number = \"0000\";
7条回答
  •  南方客
    南方客 (楼主)
    2020-12-18 21:36

    This should work:

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

    Edit: turns out that's just a bit too complicated. This should also work:

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

    but I'm not sure which is better, depends on the use case.

    Do check out the answer from Oesor: it's pretty sweet too, no regex involved.

提交回复
热议问题