【问题标题】:Incrementing an integer at the end of a string in perl在perl中的字符串末尾增加一个整数
【发布时间】:2015-08-25 16:20:26
【问题描述】:

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

\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 中做同样的事情。

【问题讨论】:

    标签: perl


    【解决方案1】:

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

    类似:

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

    应该可以。

    【讨论】:

    • 太糟糕了自动增量仅限于匹配/^[a-zA-Z]*[0-9]*\z/的字符串
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-02-14
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 2014-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多