在Emacs Lisp函数中使用正则表达式替换换行符

时间:2015-01-05 07:17:48

标签: regex emacs replace elisp

我想在降价模式下用<br>\n替换所有换行符。我写了这段代码。它不起作用。

(add-hook 'markdown-mode-hook
          (lambda ()
            (local-set-key (kbd "<f2>")
                           (lambda ()
                             (interactive)
                             (save-excursion
                               (beginning-of-buffer)
                               (while (re-search-forward "\(<br>\)?\n" nil t)
                                 (replace-match "<br>\n" nil nil))
                               (save-buffer))))))

但是,如果我在一个带有正则表达式replace-regexp的缓冲区中以交互方式调用\(<br>\)?C-q C-j并替换字符串<br>C-q C-j,它就可以正常工作。我已经在这方面挣扎了一段时间。我的代码出了什么问题?

1 个答案:

答案 0 :(得分:2)

您的字符串未转义。试试"\\(<br>\\)?\n"