当您使用带有许多捕获组的 sed 编写替换命令时(例如,将访问日志行转换为另一种格式),后引用(例如“\ 3”)不太实用。 / p>
此外,如果您在开头添加另一个捕获组,则必须更新替换模式,即向所有后向引用添加+1。
那么,有没有办法在 sed 命令中命名捕获的组而不是使用反向引用?
答案 0 :(得分:1)
[64,2]
不支持命名的反向引用。
Perl支持它们,您可以在模式中指定任意数量的具有相同名称的命名捕获组:
sed
结果:
perl -pe 's/(?<i>b)ash|(?<i>sl)ash|(?<i>m)ash/$+{i}ong/g' <<< "bash slash mash"
请参见demo