我正在编辑emacs中的文件,并希望使用replace-regexp
命令删除其间的所有空格< >字符。例如,假设我有以下内容:
<please help me> hello everyone <HI!>
在应用replace-regexp
后,我们可以获得:
<please_help_me> hello everyone <HI!>
要匹配我们可以执行的整个字符串:<[a-z]^\s[a-z]*>
但是,我怎么说我只想替换空格字符?
感谢您的帮助!
答案 0 :(得分:3)
答案 1 :(得分:1)
以下是使用elisp
的一种方法 - 此示例考虑梳理整个缓冲区。我将正则表达式分为三部分,以防原始海报希望将来使用<
和>
之间的内容做些不同的事情。如果原始海报尚未识别,Emacs有一个很好的功能M-x re-builder
来测试elisp
模式加工。
(save-excursion
(goto-char (point-max))
(while (re-search-backward "\\(\<\\)\\([^>]*\\)\\(\>\\)" nil t)
(when (looking-at "\\(\<\\)\\([^>]*\\)\\(\>\\)")
(let* (
(start (match-beginning 0))
(end (match-end 0)))
(replace-regexp "\s" "_" nil start end)))))