参考第10个子匹配

时间:2012-08-06 17:33:24

标签: regex sed

通常当你打电话给sed时,你可以叫\1来引用第一个子匹配,即:

<something> | sed "s/<regex>\(<regex>\)<regex>/\1/"

这将采用中间正则表达式并删除外部正则表达式。

但如果你有超过9场比赛,你会怎么做?简单地写\10不起作用,因为它将被解释为take submatch number one and add a zero behind it

2 个答案:

答案 0 :(得分:6)

这在sed中是不可能的。你必须使用不同的工具。

以下是关于SO的类似问题:

Circumvent the sed backreference limit \1 through \9

how to get 10th grouping value in sed?

答案 1 :(得分:1)

我不确定SED,但是在许多语言(javascript,ruby)中,具有允许子匹配(或有时称为反向引用)的正则表达式实现,仅支持\1到{{1 }}。 <{1}}根本不被允许。

任何其他反向引用都需要使用更复杂的解析器。