是否可以在正则表达式的替换中重复捕获的组?

布拉姆·范罗伊

正则表达式是否可以重复捕获的组一定次数,并增加在捕获组中也发现重复量的限制?

例:

Regex: /(a)([0-9])/g
String: ba1na3na2
Expected result: banaaanaa

我从未见过任何能做到这一点的东西,但也许我一直在找错地方。注意:我正在使用Perl-但我也很感兴趣看到其他口味的答案。

博拉夫

在perl中,此正则表达式将为您提供预期的结果,您的regexp是一个匹配项,而s正则表达式是一个替换:

s/(a)([0-9])/$1 x $2/eg;

像这样:

my $str = 'ba1na3na2';
$str =~ s/(a)([0-9])/$1 x $2/eg;
print $str;

香蕉

  • 所述e改性剂评估右手侧的表达式。
  • x运营商repeates的字符串。

更新:

正如@AvinashRaj所说的那样,它可能s/(a)([0-9]+)/$1 x $2/eg;更合适。取决于您是否想ba20nana成为

  • baa0nana

要么

  • baaaaaaaaaaaaaaaaaaaaaananana

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章