$ sr_no = ~s/^(0*)(.*)/ $ 2 /,perl脚本是什么意思?

Bal*_*aji 1 regex perl

以下替换的含义是什么?

if($sr_no =~ m/^0/)
{
    $sr_no =~ s/^(0*)(.*)/$2/;
}
Run Code Online (Sandbox Code Playgroud)

tri*_*eee 11

这是一种笨拙的写作方式$sr_no =~ s/^0+//,即删除任何前导零.这if基本上是无用的,因为替换执行相同的逻辑(即如果没有匹配则不替换).


kni*_*ttl 6

它从字符串中删除前导零.

虽然我把它写成了

s/^0+//
Run Code Online (Sandbox Code Playgroud)

即用nothing()替换一个或多个(+)前导(^)零0(//).