我正在给自己写一个小辅助函数,我想做的一件事是基于正则表达式进行替换。replace-regexp-in-string
看起来是个不错的候选人。但是,我无法将其替换为捕获。以下是我根据 emacs wiki 尝试过的所有事情:
(replace-regexp-in-string "a(b)c" "d\0f" "abc")
(replace-regexp-in-string "a(b)c" "d \0 f" "abc")
(replace-regexp-in-string "a(b)c" "d\\0f" "abc")
(replace-regexp-in-string "a(b)c" "d \\0 f" "abc")
(replace-regexp-in-string "a(b)c" "d\1f" "abc")
(replace-regexp-in-string "a(b)c" "d \1 f" "abc")
(replace-regexp-in-string "a(b)c" "d\\1f" "abc")
(replace-regexp-in-string "a(b)c" "d \\1 f" "abc")
以上所有似乎都评估为“abc”,这让我非常困惑。对于d\0f
,我希望结果是“dbf”。我开始怀疑这个函数不做捕获。
这样做的正确方法是什么?或者,一般来说这样做的方法是什么?许多处理替换正则表达式的函数只处理整个缓冲区,而我需要转换它放置的一些文本。