Answers:
您可以尝试M-x regexp-builder RET
使用交互式正则表达式匹配器,这还不错
C-g
您没有按预期退出时,不要惊慌。C-c C-q
完成练习后,是退出regexp构建器的默认键绑定。
我使用regexp-builder
它可以让您交互式地测试正则表达式并获得反馈。当然,当我开始使用它时,我立即问自己:“如何将这个正则表达式输入query-replace-regexp
?”
我选择的答案是EmacsWiki ReBuilder页面上定义的以下函数。
(defun reb-query-replace (to-string)
"Replace current RE from point with `query-replace-regexp'."
(interactive
(progn (barf-if-buffer-read-only)
(list (query-replace-read-to (reb-target-binding reb-regexp)
"Query replace" t))))
(with-current-buffer reb-target-buffer
(query-replace-regexp (reb-target-binding reb-regexp) to-string)))
所以我的工作流程是:
M-x re-builder
M-x reb-query-replace
您还可以使用helm-regexp来分别显示正则表达式组。
不在emacs中,但是http://rubular.com/基本上regexp-builder
都有一个备忘单。您可以设置一个示例,并使其吐出指向该示例的链接。我在与团队讨论正则表达式时会用到它。
作为Dave F的替代方法,regexp-builder
您还可以创建任意文本来练习模式匹配。
此命令最有用的功能是,在创建模式时它将突出显示缓冲区中的匹配项,以帮助您确保正确的模式匹配项。
使用(query-replace-regexp)
(C-M-%)并创建正则表达式来执行所需的替换将有助于您练习。
regexp-builder
尚未提供的正则表达式的人有什么好处?问题query-replace-regexp
在于您需要编写一个完整的正则表达式,然后提交给它以找出它匹配的内容。如果您不满意结果,则必须重新开始。 regexp-builder
实时显示匹配项,如果您不知道自己在做什么,则可以更轻松地调整正则表达式,直到它起作用为止。
query-replace-regexp
将让你用来在Emacs中使用它专门