Как найти все строки регулярных выражений в python dateparser - PullRequest
0 голосов
/ 10 мая 2018

Я использую dateparser модули для анализа некоторого читаемого человеком текста в объектах даты и времени Python.Сейчас у меня есть список строк регулярных выражений и я применяю их к входным строкам, чтобы выяснить, есть ли совпадения.

Я хочу использовать полный список списка регулярных выражений, который использует dateparser, есть ли способ получитьlist или есть способ работать только с входной строкой.

У меня есть список, как показано ниже

date_regex = ['[0-9]+ days', 'yesterday', '[0-9]+ weeks', 'a week', '1 week', 'last week', '[0-9]+ months', 'a month', '1 month', 'year']

, но использование dateparser может анализировать строки, такие как 1 year ago, last 3 mins ago,Поэтому я хотел бы взять все доступные регулярные выражения, которые dateparser использует.

Мой ввод содержит много текста, также включенного в строки, связанные с датой / временем.Поэтому мне нужно извлечь их и преобразовать в объект даты и времени, используя dateparser.

Обновление с примером input="I booked a movie 4 days ago, but planned last week".Мне нужно извлечь 4 days ago и last week.Я думал о применении всех доступных строк регулярных выражений в dateparser.

1 Ответ

0 голосов
/ 10 мая 2018

Почему бы вам просто не использовать пакет dateparser? Синтаксический анализ дат на естественном языке довольно сложен с множеством крайних случаев. Если вам просто интересно, что они делают, лучший способ узнать это - взглянуть на исходный код.

Edit:

Вы можете преобразовать список строк в регулярные выражения:

import re
regexes = list(map(lambda x: re.compile(x), items))
...