Чтение этой даты с помощью регулярных выражений - PullRequest
0 голосов
/ 19 декабря 2018

Я сейчас читаю сообщение GMail.Я анализирую данные из этого сообщения для серверной части почтового приложения, которое я пишу в Tkinter.Я все еще новичок в python и не смог обернуться, решая проблемы регулярных выражений очень хорошо.Я пытаюсь разобрать дату, которую Google дает мне, в формате: пт, 07 дек 2018 00:35:24 -0800 (PST). Каков будет подходящий синтаксис регулярных выражений Python для поиска этого?

print(email_date)

12/07/18 00:35

Ответы [ 3 ]

0 голосов
/ 19 декабря 2018

Ответ Тима кажется нормальным.Что-то, с чего можно начать (печатает все числа, проанализированные на основе числовых данных:

import re

date_str="12/07/18 00:33"
m = re.findall('\d+', date_str)
for e in m:
  print e
0 голосов
/ 20 декабря 2018

Поздний ответ, но вы также можете использовать .{3},.{28}\(.{3}\) и dateutil.parser, то есть:

import re, dateutil.parser
for d in re.findall(r".{3},.{28}\(.{3}\)", your_string):
    print(dateutil.parser.parse(d).strftime("%m/%d/%y %H:%M"))

Выход:

12/07/18 00:35

Regex Demo

Python Demo

0 голосов
/ 19 декабря 2018

Один из способов сделать это - сначала проанализировать дату в пригодном для использования формате, а затем с помощью модуля datetime преобразовать ее в нужный формат:

import re
import datetime

parsed_date = re.findall("(\w{3}, \d{2} \w{3} \d{4} \d{2}:\d{2}:\d{2})", email_date)[0]
formatted_date = datetime.datetime.strptime(parsed_date, "%a, %d %b %Y %H:%M:%S").strftime("%m/%d/%y %H:%M")

Пример

>>> email_date = "Fri, 07 Dec 2018 00:35:24 -0800 (PST)"
...
>>> print(formatted_date)
 '12/07/18 00:35'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...