知っておくと便利な正規表現

カテゴリー: ITのハナシ

(投稿者:河野周輔)

先日の記事で、Flexible Renamerで正規表現を使ってファイル名の整形方法をご紹介しました。正規表現とは、通常の検索とは違って、「ある範囲内で一致している文字を検索したい(取り出したい)」というニーズに応えることができる検索方法です。

ScanSnapのファイル名、「2015年03月10日03時45分15秒.pdf」の場合ですと、年月日の「2015」「03」「10」の数値だけを検索して取り出したいわけですので、次の正規表現を作成します。

([0-9]{4})年([0-9]{2})月([0-9]{2})日([0-9]{2})時([0-9]{2})分([0-9]{2})秒

[0-9]は、半角数字の0から9の範囲という意味になります。
{4}は、[0-9]が4回繰り返し登場した場合という意味になります。

そうすると、[0-9]{4}は、0000~9999が登場した場合に、この検索条件と一致し、取り出すことができるということになります。年月日は、0~9の数値しか登場しませんので、[0-9]{4}か、[0-9]{2}の正規表現を使うことで検索&取り出しを行うことができます。ちなみに [0-9]{4}は、[0-9][0-9][0-9][0-9]と表現しても同一の意味になります。

検索して一致した数値を取り出す(再利用する)ときに使用する正規表現が()です。年月日の前の正規表現は、()で囲まれています。この()部分内の情報を再利用できます。
$が、検索して一致した情報を取り出す正規表現です。$の後ろに、何番目に一致したものであるかの番号を付けます。今回の例でいくと$1、$2、$3になります。$1、$2、$3の間に挟まれている\.は、ピリオドを付けるという意味です。「.」は、正規表現で範囲を示す特別な文字列ですので「.」そのものを文字列として使いたい場合には、「\.」にするルールになっています。

このようにしてFlexible Renamerにおいて、検索と置換を行えば好みのファイル名に整形することができるようになります。

↑トップへ