Pythonが好きで,ちょっとした処理はPythonで書くことにしている.
大量のファイルを一括で処理するときに,ファイル名の一部を取り出したりする必要があるが,その時に正規表現が役に立つ.
Pythonで正規表現を使うには re を import すれば良い.使い方の流れは,正規表現を表す文字列を compile し,出来た正規表現オブジェクトの match や search,split を処理対象の文字列を引数にとって呼び出せば良い.すると MatchObject ができるので,あとは group メソッドを呼べばマッチした部分が取り出せる.matchは一致すれば成功,searchは部分的に一致したのを取り出す,splitは一致する部分で文字列を区切っていく.
例えば, 123_456_789.txt からそれぞれ数値を取り出す場合.
import re reg=re.compile("(\d+)_(\d+)_(\d+).txt") m=reg.match("123_456_789.txt") print m.group(0) # マッチした全体 print m.group(1) # 1個目の()で囲まれた部分 print m.group(2) # 2個目の()で囲まれた部分 print m.group(3) # 3個目の()で囲まれた部分
\dは数値1個を表し,+は直前の文字の1回以上の繰り返しを表す.なので,\d+で1桁以上の数字列になる.これで,
123_456_789.txt 123 456 789
が表示されるはず.