Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

エディタの正規表現で効率化

はじめまして、eripongです。

今日は、
「新人/若手向け、これだけは知っとけTips25」
の19日目として「エディタの正規表現を使って効率化」
について書きます。

正規表現は、スクリプトや、プログラムから利用することが
多いですが、エディタの正規表現も、便利です。

正規表現について、
詳細は、解説しているサイトがいくつもあるため、
そちらを見てください。

やわらかい説明としては、
 http://www.mnet.ne.jp/~nakama/

ちょっと堅めの説明として、
   http://www.turtle.gr.jp/techno/regular-expression.html

が良いと思います。
ちなみに私は以下の書籍で勉強しました。
(版はもっと古かったですが)

詳説 正規表現 第3版

詳説 正規表現 第3版

ここでは、エディタの正規表現を使って行う
効率化をいくつか紹介します。
エディタといってもいくつもありますが、
ここでは秀丸を使った場合を紹介します。

たとえば、
「改行が連続する行を削除したい。」
場合がありませんか?

AA


BB

CC

となっている場合に、

AA
BB
CC

として詰めたい場合です。
秀丸を起動して元のテキストを貼り付け、
CTRL+Rで置換ウィンドウを開きます。

検索:^\n
置換:
の様に入力して、「全置換」を押下すると、
空行が消え、詰めた状態となります。

ここでは数行しかないテキストでしたが、
数百行、数千行ある場合に空行を取り除くことを考えると、
大きな効率化ですよね。

もう一つ、例を挙げます。
「ファイルパスの一覧から、ファイル名だけを切り出したい」
元データとして、"dir /B /S /A-D"で取得した以下のような結果があるとします。

D:\Tools\x64\apache-tomcat-7.0.29\bin\bootstrap.jar
D:\Tools\x64\apache-tomcat-7.0.29\bin\catalina-tasks.xml
D:\Tools\x64\apache-tomcat-7.0.29\lib\annotations-api.jar
D:\Tools\x64\apache-tomcat-7.0.29\logs\localhost_access_log.2012-11-04.txt
D:\Tools\x64\apache-tomcat-7.0.29\temp\safeToDelete.tmp
D:\Tools\x64\apache-tomcat-7.0.29\webapps\docs\class-loader-howto.html
D:\Tools\x64\apache-tomcat-7.0.29\webapps\examples\jsp\jsp2\jspx\basic.html
D:\Tools\x64\apache-tomcat-7.0.29\webapps\examples\WEB-INF\classes\async\Async2.java

ディレクトリ名とファイル名の間に、タブを入れてExcelに貼りたい場合に、
正規表現を使えます。

検索:\\\f[^\\]+\f$
置換:\t\1

置換した結果をExcelに貼れば、ディレクトリ名、ファイル名の一覧が完成します。
結果はこうなります


ここで挙げた例は、ほんの一例です。
正規表現を使うことで、ちょっとしたフォーマットの変更が
簡単に、素早く行えます。

新人、若手の皆さんの基礎スキルとして、
正規表現を身に着けてみてはいかがでしょうか。

それでは、また。