我有一个以下格式的字符串:
\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中做同样的事情。
答案 0 :(得分:10)
您可以使用/e
正则表达式修饰符将可执行代码放入替换字符串中。
类似的东西:
$string =~ s/(\d+)$/$1 + 1/e;
应该有用。
答案 1 :(得分:3)
尝试$var =~ s/(\d+$)/($1 + 1)/e