Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
通常当你调用 sed 时,你可以调用\1引用第一个子匹配,即:
\1
<something> | sed "s/<regex>\(<regex>\)<regex>/\1/"
这将只采用中间正则表达式并删除外部正则表达式。
但是,如果您有超过 9 个匹配项,您会怎么做?简单地写\10是行不通的,因为它会被解释为take submatch number one and add a zero behind it.
\10
take submatch number one and add a zero behind it
这在 sed 中是不可能的。您将不得不使用不同的工具。
以下是关于 SO 的类似问题:
绕过 sed 反向引用限制 \1 到 \9。
如何在 sed 中获得第 10 个分组值?
我不确定 SED,但在许多具有允许子匹配(或有时称为反向引用)的正则表达式实现的语言(javascript、ruby)中,仅支持\1通过\9. \10根本不允许。
\9
任何额外的反向引用都需要使用更复杂的解析器。