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

时间:2013-08-12 12:26:16

标签: regex perl

以下替换的含义是什么?

if($sr_no =~ m/^0/)
{
    $sr_no =~ s/^(0*)(.*)/$2/;
}

4 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:6)

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

虽然我把它写成

s/^0+//

即。用任何内容(+)替换一个或多个(^)前导(0)零(//)。

答案 2 :(得分:2)

将之前的所有内容(由于*)替换为^后面的所有内容(由于$2 = (.*)

答案 3 :(得分:2)

  • 如果标量变量sr_no的内容与正则表达式^0匹配
    • 即以0
    • 开头
  • 将与正则表达式^(0*)(.*)匹配的文本替换为第二组
    • 即删除前导0

另见: