作爲確定爲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的你把'\\(\\)'在同一個地方。如果你想要使用純 括號,你不必逃避他們在這兩種情況下。 –