1

下面的替换是什么意思?

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

4 回答 4

11

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

于 2013-08-12T12:32:06.190 回答
6

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

虽然我会把它写成

s/^0+//

即,将一个或多个 ( +) 前导 ( ^) 零 ( 0) 替换为空 ( //)。

于 2013-08-12T12:31:51.227 回答
2

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

于 2013-08-12T12:29:43.233 回答
2
  • 如果标量变量的内容sr_no与正则表达式匹配^0
    • 也就是说,以0
  • 将匹配正则表达式的文本替换为^(0*)(.*)第二组
    • 即去掉前导0s。

也可以看看:

于 2013-08-12T12:31:44.983 回答