我有一个看起来像这样的文件:
junk stuff NAME Test File Name VER 2.00 DATE 1/2/12 END useless stuff
另一个:
waste material NAME Test file 2 VER 1.78 DATE 1/8/13 END don't look at me, NOTREAL
我如何解析它以便获得3个值:名称,版本和日期?
答案 0 :(得分:4)
将行加载到字符串中而不是使用某些正则表达式:
>>> re.findall(r'NAME (.+) VER (.+) DATE (.+)', 'NAME Test VER 2.00 DATE 1/2/12')
[('Test', '2.00', '1/2/12')]
答案 1 :(得分:3)
使用正则表达式:
import re
line = 'NAME Test VER 2.00 DATE 1/2/12'
s = re.search(r'NAME (.+) VER (.+) DATE (.+)', line)
name = s.group(1)
version = s.group(2)
date = s.group(3)
答案 2 :(得分:0)
不依赖于键名及其顺序的通用解决方案
s = 'NAME Test VER 2.00 DATE 1/2/12'
args = s.split(' ')
vars = {}
for i in xrange(0, len(args), 2):
vars[args[i]] = args[i+1]
print vars # {'DATE': '1/2/12', 'VER': '2.00', 'NAME': 'Test'}