Я хочу вернуть первое слово из значения даты с помощью регулярных выражений.Не существует точного шаблона слов, но я просто хочу получить первое слово, предшествующее дате (а не всю строку).
что у меня есть:
regexDate = r'.*(?=)[w]*\d{2}\/\d{2}\/\d{4}|.*(?=)[a-zA-Z]+\s[0-9][0-9],?\s[0-9][0-9][0-9][0-9]|.*(?=)\d{2}-\d{2}-\d{4}|\d{2}/\w*/\d{4}|.*(?=)\d{2}-\w*-\d{4}|.*(?=)\d{2}.\w*.\d{4}|.*(?=)\d{4}/\d{2}/\d{2}|.*(?=)\d{2}-\w*-\d{2}|.*(?=)\d{2}/\d{2}/\d{2}'
text = 'blah blah Start: 01-Oct-2018 blah blah End: 30-Sep-2019'
find = re.findall(regexDate, text)
результат:
['blah blah Start: 01-Oct-2018 blah blah End: 30-Sep-2019']
В этом случае я просто хочу получить 'Начало: 01-окт-2018 и конец: 30 сентября 2019 года.
Примечание: Начало и конец могут быть разными наборами слов в других обстоятельствах.Форматы даты также отличаются.
Я попытался обернуть .*(?=)
вокруг возможностей, но он просто вернется 30 сентября 2019 года.Может быть, кто-то может предложить более чистую версию?