正規表現の使い方について・・・
pythonにおいて
if(hogehoge(No) >=#####)
という文字列にマッチしたら#####(半角数字)の部分を取り出し
hogehoge=****
という文字列にマッチしたら****(半角数字)を取り出すような正規表現を考えています。
うまい具合に取り出せる書き方はありませんでしょうか?
現在のコードは以下のような感じです。
# -*- coding: utf-8 -*-
import codecs
import re
def main():
# 日本語に対応した読み出し
f = codecs.open('C:\workspace\hoge\setting.txt', 'r', 'shift_jis')
data1 = f.read() # ファイル終端まで全て読んだデータを返す
f.close()
lines1 = data1[:-1].split('\t')
shotNoPattern = r"(if\(hogehoge\(No\) >=(\d{5})\)|hogehoge=(\d{4}))"
for line in lines1:
#shotNoを検索する
repatter = re.compile(shotNoPattern)
matchLine = repatter.match(line)
if matchLine:
print matchLine.group()
if __name__ == "__main__":
main()
setting.txtの中身は以下のような感じです
if(hogehoge(No) >=12909)
hogehoge=600
endif
if(hogehoge(No) >=13155) //たまにコメントがついている
hogehoge=650
endif
if(hogehoge(No) >=#####)
hogehoge=*****
endif
※すべてのif(hogehoge(No) >=#####)の後に半角空白が一個入っています・・・
最終目的としましては.txtファイルに記載されている上記のようなテキストから値を取り出し、
[[12909,600],[13155,650],[#####,*****],......]
のような配列にしたいという物です