作为确定为Emacs功能的第一次经历,我想提出编写采取的argv所有出现[一些数],为了重新编号它们的功能。的Emacs Lisp逃脱正则表达式
这里面有替换,正则表达式的Emacs完成,进入作为搜索/替换字符串
argv\[\([0-9]+\)\]
argv[\,(+ 1 \#)]
现在,我想在我的.emacs写这让我明白我也需要逃避Lisp的特殊字符。所以在我看来,它应该写
(defun argv-order()
(interactive)
(goto-char 1)
(replace-regexp "argv\\[[0-9]+\\]" "argv[\\,\(+ 1 \\#\)]")
)
搜索字符串工作正常,但替换字符串给我的错误“,在替换文本无效使用\的。我一直在试图围绕增加或删除一些\但没有。成功
任何想法
字符串反斜杠的量应该是双的,对于交互使用。而已。 –
这是不够的,因为你必须逃离这是在列表中的一个特殊字符而不是正则表达式中的括号。 – user2941893
这就够了。以交互方式,如果要捕获,则可以放入'\(\)'。 在elisp的你把'\\(\\)'在同一个地方。如果你想要使用纯 括号,你不必逃避他们在这两种情况下。 –