在perl中增加字符串末尾的整数

时间:2010-07-19 19:45:30

标签: perl

我有一个以下格式的字符串:

\main\stream\foo.h\3

它可能有更多或更少的“部分”,但总是以斜杠后跟一个整数结束。其他例子包括:

\main\stream2309\stream222\foo.c\45

\main\foo.c\9

我需要在Perl中增加字符串末尾的数字,然后单独留下其余部分。我在这个网站上找到了一个完全符合我要求的例子(参见Increment a number in a string in with regex),只有语言是Javascript。给出的解决方案是:

.replace(/\d+$/,function(n) { return ++n })

我需要在Perl中做同样的事情。

2 个答案:

答案 0 :(得分:10)

您可以使用/e正则表达式修饰符将可执行代码放入替换字符串中。

类似的东西:

$string =~ s/(\d+)$/$1 + 1/e;

应该有用。

答案 1 :(得分:3)

尝试$var =~ s/(\d+$)/($1 + 1)/e