Elispで正規表現プログラムの効率的な開発の方法

はじめに

re-search-forwardやre-search-backwardを使って開発をしていると
開発正規表現にマッチするかどうかを確認するのに非常に難儀していました。
最近、以下の2つの方法を実践して非常に効率があがったので、メモを残しておきます。

正規表現に色を付けて確認する

M-x re-builder

マッチした文字の色が付くのに加えて、
\\(と\\)で囲まれてる部分には、それぞれ該当する

色を付けています。

バッファに対してS式を評価する

M-: (eval-expression)

M-x (execute-extended-command)だとinteractiveな関数を作らないと動作を試せないですが、M-: (eval-expression)を使うとS式を評価して動作確認することができます。
re-search-forwardなどのバッファ内で移動する関数の挙動を確認するのが楽になります。

M-: (eval-expression)することで、ミニバッファ部分にS式を入力できる状態になります。

入力し終わったらRET

結果が返ってくる式の場合は、通常の評価と同様に結果がミニバッファに表示できます。

複数行に渡るS式も入力することができますが、ミニバッファではemacs-lisp-modeが有効になってないです。
別のバッファで作成したものを貼り付けて実行すればよいかと思います。

Elispでの文字列操作方法

ここを常に確認しながら進めています。
Emacs Lisp の文字列操作まとめ - はてなグループEmacs@kiwanami - Emacsグループ

基本的な文字列操作の方法

基本的な文字列操作の方法は、"Ruby との文字列操作対応表"の章にあります。
Rubyで行う処理と比較しながらの説明があります。非常に分かりやすいです。

複雑な文字列処理の方法

複雑な文字列処理の方法は、"文字列内の複雑な検索、置換など"の章に書かれています。
(while (re-search-forward REGEXP nil t))での処理は複雑な処理に役立ちます。

おわりに

Elispを書きはじめたばかりなので、間違いもあるかと思いますので、ご指摘などありましたらよろしくおねがいします。