Emacs:正则expression式replace换个案例
每隔一段时间我想要replace所有值的实例,如:
<BarFoo>
同
<barfoo>
即做一个正则expression式replace尖括号内的所有东西与小写等价。
任何人都有一个很好的Lisp的片段呢? 假设我们只处理ASCII值是安全的。 加分指向任何足够通用的东西以获取完整的正则expression式,而不仅仅处理尖括号示例。 甚至更多的奖励点,只是使用Mx query-replace-regexp
的答案。
谢谢,
大教堂
以"<\([^>]+\)>"
作为searchstring,以"<\,(downcase \1)>"
作为replace"<\,(downcase \1)>"
尝试Mx query-replace-regexp
。
这应该适用于Emacs 22及更高版本,请参阅Steve Yegge博客文章 ,了解更多关于如何在replacestring中使用Lispexpression式的详细信息。
对于Emacs的早期版本,您可以尝试如下所示:
(defun tags-to-lower-case () (interactive) (save-excursion (goto-char (point-min)) (while (re-search-forward "<[^>]+>" nil t) (replace-match (downcase (match-string 0)) t))))