Emacsの正規表現はどうも慣れない。re-builderはマッチングをリアルタイムに確認しながら編集できる事を知ったので、さっそく使ってみた。
対象は、以前に書いたhowm上のorgファイルからhowmのタイトル行を取り除く
(defun my-headline-removal (backend) (interactive) (when (eq backend 'hatena) (goto-char (point-min)) (while (re-search-forward "^=\\( +\\(.*\\)\\|\\)$\\|^\\[[1-2][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9][ \t]?\\([0-2][0-9]:[0-5][0-9]\\)?\\]" nil t) (goto-char (match-beginning 0)) (kill-whole-line) (goto-char (point-at-bol))))) (add-hook 'org-export-before-processing-hook 'my-headline-removal)
だと、下のようにファイルリンクがあるとマッチしてくれない箇所がでる。
= テストタイトル [2015-02-14 22:08] >> ~/test/hoge.txt
これを"M-x re-builder"で正規表現を入力するwindowが表示される。そこに正規表現を入力するとリアルタイムマッチする箇所が反転するので、確かめながら修正が出来る。で、正規表現を
"^=\\( +\\(.*\\)\\|\\)\n\\[[1-2][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9][ \t]?\\([0-2][0-9]:[0-5][0-9]\\)?\\]\\(.*\\|\\)"
に修正した。もっと整理すべきだと思うけど、動いているのでこのままにしている。