如何使用python

时间:2018-12-20 17:40:34

标签: python regex python-3.x

我正在尝试从整个句子中提取特定的日期字符串。

例如: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。我想知道有什么方法可以使用regexdatetime parse,例如:

如果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))'),但不知道如何在re.compiler中编译解析日期时间库。

1 个答案:

答案 0 :(得分:0)

这很丑陋,但是对于短文本,您可以在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)))