是否有可能用正則表達式重複捕獲的組的次數,並且在捕獲組中還可以找到要重複的數量的限制?是否有可能在正則表達式中的替換中重複捕獲的組?
例子:
Regex: /(a)([0-9])/g
String: ba1na3na2
Expected result: banaaanaa
我從來沒有見過任何這樣做,但也許我一直在找錯了地方。注意:我正在使用Perl - 但我很想看到其他版本的答案。
是否有可能用正則表達式重複捕獲的組的次數,並且在捕獲組中還可以找到要重複的數量的限制?是否有可能在正則表達式中的替換中重複捕獲的組?
例子:
Regex: /(a)([0-9])/g
String: ba1na3na2
Expected result: banaaanaa
我從來沒有見過任何這樣做,但也許我一直在找錯了地方。注意:我正在使用Perl - 但我很想看到其他版本的答案。
在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;
更approriate。根據如果你想 ba20nana
上成爲
或
你有沒有聽到上面'e'修改? –
你想如何使用正則表達式來做到這一點 - 你將如何使用它?我想,'m /'只是返回匹配。在's /'中?這改變了字符串,是嗎? – zdim
我喜歡示例數據! :) – simbabque