我正在尝试使用 emacs 的 replace-regex 命令将相当长的值序列转换为不同的格式。要提取的值超过 9 个,因此 \1 - \9 反向引用是不够的。
如何在 emacs 中反向引用 9 个以上的捕获组?可以使用命名组吗?如果是这样,如何?
从 Emacs 23 开始,您可以在正则表达式替换文本中包含 Lisp 代码。这为您提供了一种使用更多反向引用的方法。该函数match-string
返回编号的反向引用。
\1 … \9 \,(or (match-string 10) "")
Run Code Online (Sandbox Code Playgroud)
从 Emacs 22 开始,如果正则表达式中有任何不需要反向引用的带括号的组,请使用\(?:…\)
(Emacs 称其为shy group)。
归档时间: |
|
查看次数: |
2067 次 |
最近记录: |