как найти одну дату с любым форматом после двоеточия ':', используя python - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь извлечь конкретную строку даты из целого предложения.

Например: string = 'Smith Born: Wednesday October 10 1975 Died: Wednesday December December 20 2018, Service will be held ayz location on Saturday December 23 2018'.

Из вышеприведенных предложений как мне извлечь 'Дата рождения (любой формат), новсегда будет в формате "Born: Date".Точно так же умерла дата снова в любом формате даты.

Я использую Python.Я хотел знать, есть ли способ использовать regex и datetime parse, например:

Я нахожу Age как re.compile('Age ([0-9]*)'), если Age 32, тогда приведенный выше код будетраньше находил 32.Есть ли способ, которым я могу использовать re.compile('Born: (parse(datetime))'), или любой другой вариант будет здорово .. спасибо

string = 'Smith Born: Wednesday October 10 1975 Died: Wednesday December December 20 2018, Service will be held ayz location on Saturday December 23 2018'.

Извлечь дату рождения и дату смерти.Любой формат даты.

Я пытаюсь re.compile('Born: (parse(datetime))'), но не знаю, как скомпилировать библиотеку datetime разбора в re.compiler.

1 Ответ

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

Это довольно некрасиво, но для коротких текстов вы можете запускать все более короткие строки за dateutil.parser:

import dateutil

def extract_date(text):
    while True:
        try:
            date = dateutil.parser.parse(text)
            return date
        except:
            pass
        end = text.rfind(" ")
        if end == -1:
            return None
        text = text[:end]
    return None

def following(pattern, text):
    start = text.find(pattern)
    if start == -1:
        return None
    return text[start + len(pattern):]

text = 'Smith Born: Wednesday October 10 1975 Died: Wednesday December December 20 2018, Service will be held ayz location on Saturday December 23 2018'
print(extract_date(following("Born:", text)))
print(extract_date(following("Died:", text)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...