我正在尝试使用 emacs 的 replace-regex 命令将相当长的值序列转换为其他格式。要提取的值超过 9 个,因此 \1 - \9 反向引用不够。
如何在 emacs 中反向引用超过 9 个捕获组?可以使用命名组吗?如果可以,如何使用?
答案1
从 Emacs 23 开始,你可以在正则表达式替换文本。这为您提供了使用更多反向引用的方法。函数match-string
返回编号的反向引用。
\1 … \9 \,(or (match-string 10) "")
从 Emacs 22 开始,如果正则表达式中有任何括号组不需要反向引用,请使用\(?:…\)
(Emacs 称之为害羞的群体)。