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))))