57

時々、次のような値のすべてのインスタンスを置き換えたいと思います。

<BarFoo>

<barfoo>

つまり、山かっこ内のすべてのものを同等の小文字に正規表現で置き換えます。

誰かがこれを行うLispの素晴らしいスニペットを手に入れましたか?ASCII値だけを扱っていると考えるのは安全です。完全な正規表現を使用するのに十分な汎用性があり、山かっこの例を処理するだけではないものに対するボーナスポイント。を使用するだけの回答には、さらに多くのボーナスポイントがありますM-x query-replace-regexp

ありがとう、

ドム

4

3 に答える 3

91

検索文字列および置換として使用してみてくださいM-x query-replace-regexp"<\([^>]+\)>""<\,(downcase \1)>"

これはEmacs22以降で機能するはずです。置換文字列でLisp式を使用する方法の詳細については、このSteveYeggeブログ投稿を参照してください。

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))))
于 2009-03-24T11:38:16.333 に答える