我正在尝试从具有以下内容的文本文件中解析数据:

On 1-1-16 1:48 Bob used: 187
On 1-5-16 2:50 Bob used: 2


我只想打印时间和使用的数字,所以它看起来像:

1-1-16, 1:48, 187
1-5-16, 2:50, 2


我正在使用此正则表达式:

print(re.search(r"On ([0-9,-, ]+)Bob used ([0-9\.]+)", line.strip()))


我得到的结果说

我尝试使用.group(),但是它给出错误“'NoneType'对象没有属性'group'”。我还注意到它仅找到第二个分组(数字)而不是第一个分组(日期和时间)。

如何解决?

最佳答案

您在:之后缺少Bob used,并且需要更精确的日期部分表达式-例如,\d+-\d+-\d+ \d+:\d+

>>> s = 'On 1-1-16 1:48 Bob used: 187 On 1-5-16 2:50 Bob used: 2'
>>> re.search(r"On (\d+-\d+-\d+ \d+:\d+) Bob used: ([0-9\.]+)", s).groups()
('1-1-16 1:48', '187')

关于python - Python正则表达式问题和分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35754242/

10-16 01:41