Pythonで正規表現

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

が表示されるはず.

コメントする