我想解析来自文本文件的数据。数据元组是一个年龄段,其中0-3倍是'正确'对齐的。无论在源数据中追踪一个年龄多少次,我都想要None
“pad”三次。年龄和时间都是空间分隔的,而且时间是格式“mm:ss.dd”或“ss.dd”。年龄和时间可以重复一次或多次。我该如何格式化这个python正则表达式?
下面是一些示例数据:
test_str = ['25',
'24 22.10',
'16 59.35 1:02.44',
'18 52.78 59.45 1:01.22',
'33 59.35 1:02.44 34 52.78 59.45 1:01.22 24 25']
扫描,上面应该产生的元组(或列表类型的字典,...无论)
(25, None, None, None)
(24, None, None, 0:22.10)
(16, None, 0:59.35, 1:02.44)
(18, 0:52.78, 0:59.45, 1:01.22)
(33, None, 0:59.35, 1:02.44), (34, 0:52.78, 0:59.45, 1:01.22), (24, None, None, None), (25, None, None)
我的想法是使用正则表达式,沿线的东西:
data_search = r'[1-9][0-9]((([1-9][0-9]:)?[0-9]{2}.[0-9]{2})|){3}'
x = re.search(data_search, test_str[0])
但我没有成功。
有人可以帮助我的正则表达式或建议更好的解决方案吗?
您在预期结果中有一个“(25,None,None)”。这是一个复制错误,对吗? –