Моя цель — извлечь дату, которая содержит по крайней мере день и месяц, но также может содержать минуту, час и год.
Я хочу, чтобы синтаксический анализатор не находил целые числа и не думал, что это подразумевает день текущего месяца.
Кроме того, я также хочу, чтобы синтаксический анализатор нашел дату, которая является лишь маленькой часть более крупной строки.
Подумайте:
'Сегодня самое чудесное 27 марта 2025 года' = datetime.datetime(2025, 3, 27, 0, 0)
'2 ГБ оперативной памяти' != datetime.datetime(2025, 3, 2, 0, 0) (Предполагая, что в настоящее время мы в марте)
Что я пробовал
Использование аргумента fuzzy=True в dateutils
Код: Выделить всё
from dateutil import parser
#OK: Correct Datetime is returned: datetime.datetime(2025, 3, 30, 0, 0)
parser.parse('Today is the most wonderful 30th March 2025', fuzzy=True)
#NOT OK: Integer is not ignored, Datetime is returned: datetime.datetime(2025, 3, 2, 0, 0)
parser.parse('2 is my lucky number', fuzzy=True)
Код: Выделить всё
frome dateparser import parse
# OK: Returns correct datetime: datetime.datetime(2025, 3, 30, 0, 0
parse('30 March', settings={'REQUIRE_PARTS': ['month', 'day']})
#OK: Integer is Ignored, no datetime returned
parse('30', settings={'REQUIRE_PARTS': ['month', 'day']})
#NOT OK: Datetime Should be Found
parse('Today is the most wonderful 30th of March', settings={'REQUIRE_PARTS': ['month', 'day']})
Есть ли другой способ добиться той же функциональности?>
Подробнее здесь: https://stackoverflow.com/questions/795 ... parsing-in
Мобильная версия