正则表达式:替换WITH REPEATED字符串,而不是“替换重复”

时间:2012-10-18 01:42:38

标签: regex replace repeat

我们可以用正则表达式替换匹配的模式吗?

例如: 目标字符串是“abc2:4def”,我想要的是abc2222def,这意味着“4”是目标字符串中的转发器,我想将我的字符串组合回“未压缩”格式。

我可以想到sed

中的后向引用
sed 's/\([0-9]+\):\([0-9]\)/\1\\{\2\\}/' #\1 to match "2" and \2 to match "4".

\\{n\\}要重复n次,但不幸的是,这不起作用。

我想知道REGEX是否可以支持它。有什么建议吗?

我知道我们可以通过其他工具实现它,但在手边,我只能使用一些REGEX函数。

这是我在stackoverflow中的第一篇文章,如果我错过了什么,请告诉我。

1 个答案:

答案 0 :(得分:0)

Perl中,我能够做到这一点:

$ echo abc2:4def | perl -lne 'print $1 . $2 x $3 . $4 if m/^(\w+)(\d):(\d)(.*)/;'
abc2222def