perl,在第i个捕获组中附加一个字符

时间:2012-02-09 22:32:25

标签: regex perl

我有这个班轮:

perl -pe 's|.*?((\d{1,3}\.){3})xxx.*|\1|'

我通过一些输入提供此命令,例如192.168.1.xxx,它可以正常工作。现在,我想在输出序列中附加一个0,但当然如果我只是在\1之后追加0,它将被解析为第十个捕获组。如何将它连接到\1指令?

1 个答案:

答案 0 :(得分:11)

should use $1 instead of \1 in substitutions。然后你可以使用大括号来明确地写它:

perl -pe 's|.*?((\d{1,3}\.){3})xxx.*|${1}0|'