какой шаблон следует использовать для печати даты, времени и идентификатора процесса для следующего кода? - PullRequest
2 голосов
/ 27 апреля 2020

Я пробовал шаблон как: pattern = r"([a-zA-Z]+ (\d+) (\d+):(\d+):(\d+)) \[(\d+)\]:", но он не работает. Любая помощь будет оценена. Спасибо.

import re

def show_time_of_pid(line):
    pattern =___
    result = re.search(pattern, line)
    return ___
    print(show_time_of_pid("Jul 6 14:01:23 computer.name CRON[29440]: USER (good_user)"))
#the output should be in this form: Jul 6 14:01:23 pid:29440

1 Ответ

3 голосов
/ 27 апреля 2020

Вы можете сделать это с помощью следующего регулярного выражения:

([a-zA-Z]+ \d+ \d+:\d+:\d+).*\[(\d+)\]\:

Пример использования:

>>> p =  "([a-zA-Z]+ \d+ \d+:\d+:\d+).*\[(\d+)\]\:"
>>> string =  "Jul 6 14:01:23 computer.name CRON[29440]: USER (good_user)"
>>> matches = re.search(p, string)
>>> matches.group(1)
'Jul 6 14:01:23'
>>> matches.group(2)
'29440'
>>>
...