Вы можете использовать следующее:
In [1]: import re
In [2]: k = r'(?sm)(?:^Online ID:(\w+)$)|(?:^---Played at ([0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{1,2}:[0-9]{2,}[A|P]M$))'
In [3]: data="""Online ID:JohnDoe
...: [+] Country: FR
...: =========================================
...: ---Played at 2020-05-02 4:00PM
...: ---Played at 2020-03-02 3:00PM
...: ---Played at 2020-01-02 2:00PM
...: ---Played at 2020-01-02 1:00PM
...: ========================================="""
In [15]: re.findall(k, data, re.MULTILINE)
Out[15]:
[('JohnDoe', ''),
('', '2020-05-02 4:00PM'),
('', '2020-03-02 3:00PM'),
('', '2020-01-02 2:00PM'),
('', '2020-01-02 1:00PM')]
Здесь s
и m
включает:
- s модификатор: одна строка. Точка соответствует символам новой строки
- m модификатор: многострочный. Заставляет ^ и $ сопоставлять начало / конец каждой строки (не только начало / конец строки)
, а затем две важные для вас группы:
-
(?:^Online ID:(\w+)$)
чтобы найти идентификатор пользователя ^---Played at ([0-9]{4,}-[0-9]{2,}-[0-9]{2,} [0-9]{1,2}:[0-9]{2,}[A|P]M$)
чтобы найти время игры