正则表达式是否有可能重复捕获的组一定次数,并且还会在捕获组中找到重复数量的限制?
示例:
Regex: /(a)([0-9])/g
String: ba1na3na2
Expected result: banaaanaa
我从来没有见过这样做的东西,但也许我一直在寻找错误的地方。注意:我使用的是Perl - 但我也有兴趣看到其他版本的答案。
答案 0 :(得分:5)
在perl中,这个正则表达式会给你预期的结果,你的正则表达式是一个匹配,而s
正则表达式是一个替换:
s/(a)([0-9])/$1 x $2/eg;
像这样:
my $str = 'ba1na3na2';
$str =~ s/(a)([0-9])/$1 x $2/eg;
print $str;
banaaanaa
e
修饰符将右侧评估为表达式。x
运算符重复该字符串。<强>更新强>
正如@AvinashRaj所说,s/(a)([0-9]+)/$1 x $2/eg;
可能更合适。根据您的需要而定
ba20nana
成为
或