Я видел некоторые посты, в которых рассказывается о том, может ли возможная строка быть датой или нет, но, похоже, ни одна из них не имеет отношения к тому, может ли предложение содержать потенциальные даты или нет.
Iиспользовали функцию синтаксического анализатора dateutil, которая, по-видимому, эффективна при распознавании дат в строках, только если дата является единственным компонентом строки.
from dateutil.parser import parse
def is_date(string, fuzzy=False):
"""
Return whether the string can be interpreted as a date.
:param string: str, string to check for date
:param fuzzy: bool, ignore unknown tokens in string if True
"""
try:
parse(string, fuzzy=fuzzy)
return True
except ValueError:
return False
>>> is_date("1990-12-1")
True
>>> is_date("foo 1990-12-1 bar")
False