私はPythonと正規表現が初めてです。現在、以下のファイルの内容を読み取り、セクション内の特定のパラメーターと max_speeds を取得するプログラムを作成しようとしています。各 SECTION:# の下で、パラメーターは次の SECTION:# まですべてインデント (TAB) されます。
[SECTION:3]
paramter = 3
state = AZ
car = toyota
max_speed = 90.000
any_pets = yes
[SECTION:13]
paramter = 10
state = NY
car = honda
max_speed = 120.000
any_pets = yes
[SECTION:85]
paramter = 31
state = TX
car = kia
max_speed = 30.000
any_pets = no
これは私のコードです:
import re
file = open('file.txt').readlines()
file_str = str(file)
for lines in file_str:
myreg = re.compile(r'(?<=SECTION:13).+(max_speed\s\=\s\w+)')
myreg1 = myreg.search(lines)
print myreg1.group(1)
問題は、結果が常に間違っていることです...正規表現が常に最後のセクションの結果と一致するかのようです。
私が間違っていることと、それを行う最善の方法を教えてください。ありがとうございました!