正規表現を用いて、効率的に読書リストを更新する


あけおめことよろ。さて。去年から、チェックした本のまとめをブログに掲載している。
友人知人も似たようなことをやるようになっていて、結構いいなと思っている。

しかし、この記事の更新が結構めんどくさい。
月次とはいえ、ツイッターに載せた本のURL(Amazon)をtwilogから転記して、はてな記法に合わせて整形するのが手間なのだ。
そこで、太田くんに正規表現を教えてもらって使ってみることにした。

ツイートの検証

上に書いたように、ぼくはとりあえず気になる本があったら確実にAmazon経由でツイッターに書き込んでいる。
この書き込みは、いずれは正規表現的ななにかを使うだろうと思っていたので、なんとなくルールっぽいものを意識してつぶやいていた。
具体的に自分の書き込みをみてみると、次の3パターンのどれかの形式をとっていた。

著者名『書名』 アマゾンリンク
著者名『書名』 アマゾンリンク →面白そう。
著者名『書名』 アマゾンリンク "面白そう"

アマゾンリンクの前後には確実に半角スペースが入れてある。また、2回めの半角スペースのあと、自分の感想の場合は「→」引用の場合は「"」を使っている。
上記を守っているおかげで、簡単に転記と整形の半自動化ができることがわかった。

正規表現の適用

結果的にいま使っているのが、下記の正規表現である。
文法の理解は各自ググってください。
miで動かしているので、ほかのエディタだと動かないかもしれない。

【検索】
(.+?) (https:\/\/www\.amazon\.co\.jp\/.+)( ".+"| →.+| )

【置換】
[$2:title=$1]
$3

ぼくと同様の形式でつぶやき、それらを全部miにコピペして上の正規表現を適用すれば、amazonのURLと前後の半角スペースを探し出し、はてな記法に合ったかたちで出力してくれるはずだ*1

*1:とはいえ、まだあんまりよくわかってないので、仮に動かなくても答えられません。わかってないので、質問もしないでください。