2007/02/12
Emacs で正規表現を使うなら re-builder を使おう
Emacs で正規表現を使うならば re-builder を使うことをおすすめします。
例えば、正規表現を良く使うシチュエーションとして置換があります。
M-x replace-regexp
で置換対象文字列を正規表現で指定し、何に置換して欲しいかを指定するわけです。
行頭に // を追加してソースをコメントアウトしたいのであれば
M-x replace-regexp Replace regexp: ^ ← ^ を入力 Replace regexp ^ with: // ← // を入力
のように置換をします。(この場合は、comment-region が最適解ですが)
例に挙げたような簡単な正規表現であれば、間違いようもなく問題ないのですが、ちょっと複雑な置換になると話は変わります。
以下のようなコードがあるとしましょう。
byte* buf = new byte[32]; unsigned int bytesPerSector = bitPerSector / 8;
このコードでは、byte という型を使っているのですが、移植性の観点から
- byte => uint8_t
と置換する必要が出てきたとします。
つまり
uint8_t* buf = new uint8_t[32]; unsigned int bytesPerSector = bitPerSector / 8;
となって欲しいわけです。
間違っても
- bytesPerSector => uint8_tsPerSector
なんて事態は避けたいですね。*1
そこで正規表現で置換をすると思うのですが、すぐに正規表現が浮かぶでしょうか?
これくらいなら全然余裕で浮かぶ人も多いと思うのですが、できれば正規表現を試行錯誤しながら作りたいと思うのが人情です。
replace-regexp に引数を渡してみたら、「マッチしすぎた」「マッチしなかった」なんてのは悲しいいです><。
そこで re-buidler の出番です。
対象のソースコードのバッファを開いて M-x re-builder と実行して下さい。
実行すると正規表現の入力を求められます。
b y t e と順々に入力していくとリアルタイムにマッチする部分がハイライトされていきます。
これで良さそうです。
あとは replace-regexp にこの正規表現を指定してやればお望みの置換は完了です。
このように re-builder は正規表現を入力しながらリアルタイムでマッチする場所を知ることができるのです。
re-builder を利用すれば、複雑な正規表現を試行錯誤しながら構築できるので、無駄な手間を減らせるということになります。
便利なのでぜひ使ってみて下さい。
参照
Permalink | コメント(3) | トラックバック(2) | 18:33
![]()
- 255 http://d.hatena.ne.jp/
- 163 http://b.hatena.ne.jp/hotentry
- 88 http://reader.livedoor.com/reader/
- 79 http://www.hatena.ne.jp/info/diary
- 57 http://www.google.co.jp/ig?hl=ja
- 55 http://b.hatena.ne.jp/
- 50 http://www.monaos.org/
- 39 http://b.hatena.ne.jp/entrylist?sort=hot
- 32 http://www.google.com/reader/view/
- 30 http://b.hatena.ne.jp/add?mode=confirm&title=%u3072%u3052%u307D%u3093 OS%u3068%u304B%u4F5C%u3063%u3061%u3083%u3046%u304BMona- - Emacs %u3067%u6B63%u898F%u8868%u73FE%u3092%u4F7F%u3046%u306A%u3089 re-builder %u3092%u4F7F%u304A%u3046&url=http:/
Mona OS - Free operating system
- 過去のおすすめ本一覧
- ハッカー養成塾:ハッカーへの遠回り
- 関数型言語の勉強の連載
- 一人読書会
- Ubuntu 7.10 Gutsy インストール
- Ubuntu 7.10 Gutsyへアップグレード
- Ubuntu 6.06 LTSインストール
- Ubuntu 6.10 Edgy インストール
- 計算機プログラムの構造と解釈
- Modern C++ Design読書会
- はてな退職のお知らせ
- プログラマとして最低限身につけるべき知識
21598502




