White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

正規表現書き方

http://d.hatena.ne.jp/Megumi221/20090128#1233239592

でも、そのような処理は正規表現を使えばスマートにできるのではないかと考えた。で、買ってきた本。初めてのPython 第2版には、2、3ページの説明しかないのでどうやって使うのかよく分からない。

こんな感じ?readFile.pyで保存

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import re

pattern = re.compile("for(.+?):")
for line in open("readFile.py","r"):
    m = pattern.search( line )
    if m:
        print m.group(1)

実行結果

~$ ./readFile.py
(.+?)
line in open("readFile.py","r")

ポイントは

  • re.search/matchで正規表現による探索をかける(matchは文頭のみ、searchは文中OKだったはず)
  • re.compileってやると正規表現コンパイルするので速度が上がる?
  • マッチしたらgroup(0)とかでマッチした部分全体が取れる
  • 正規表現のグループ演算子()は.group(n)で取れる

このあたり見てみるといいかもしれません。
http://www.python.jp/doc/nightly/lib/module-re.html