我们可以用正则表达式替换匹配的模式吗?
例如:
目标字符串是“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中的第一篇文章,如果我错过了什么,请告诉我。
答案 0 :(得分:0)
在Perl
中,我能够做到这一点:
$ echo abc2:4def | perl -lne 'print $1 . $2 x $3 . $4 if m/^(\w+)(\d):(\d)(.*)/;'
abc2222def