0

これが私のスカラーです:

my $var = "foo1";

そして、これが私がやろうとしたことです:

$var =~ s/[0-9]/_[0-9]/;

結果:

foo_[0-9]

期待される結果:

foo_1

foo試合後にアンダースコアを見つけ1て追加することと、以前にアンダースコアを見つけて追加することについて答えていただければ幸いです。

$var = s/foo/something/

$var = s/[0-9]/something/

前もって感謝します

4

1 に答える 1

4

挿入したいものをキャプチャしてから、キャプチャしたものを挿入します。

s/([0-9])/_$1/;

または、先読みを使用します。

s/(?=[0-9])/_/;

要求に応じて、以下にも一致するソリューションfoo:

s/(foo)([0-9])/$1_$2/;

s/foo\K([0-9])/_$1/;

s/foo\K(?=[0-9])/_/;

キャプチャはマッチを遅くすることに注意してください。

于 2012-09-27T22:18:43.480 に答える