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+//

つまり、1 つまたは複数の ( +) 先頭の ( ^) ゼロ ( 0) を何も置き換えません ( //)。

于 2013-08-12T12:31:51.227 に答える
2
  • スカラー変数の内容がsr_no正規表現と一致する場合^0
    • つまり、0
  • 正規表現^(0*)(.*)に一致するテキストを 2 番目のグループに 置き換えます
    • つまり、先頭0の s を削除します。

以下も参照してください。

于 2013-08-12T12:31:44.983 に答える
2

*すべての ( による) 先行する ( による^) ゼロを、それに続くすべてのゼロ ( による$2 = (.*))に置き換えます。

于 2013-08-12T12:29:43.233 に答える