Как отделить период времени "17 мая - 18 июля" от текста в Python? - PullRequest
0 голосов
/ 08 октября 2018

Я хочу разобрать месяц и год по заданной строке.

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

a = ['WORK EXPERIENCE: ',
 'Cause + Effect Strategy & Marketing (CESM) | Rochester, New York ',
 '',
 '              May 17-Aug 17 ',
 '',
 '                  Jun 14-Jun 15 ',]

Теперь я хочу сначала разобрать дату, например "17 мая-августа17 "и" 14 июня - 15 июня "из списка.

Я пытался использовать циклы for для каждого элемента списка и использовал datefinder и parser, чтобы я мог получить строку даты, но я получил пустой список.

Я пытался использовать регулярное выражение для поиска даты, как показано ниже:

re.findall(r'((?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z]*(?:-|\.|\s|,)\s?\d{,2}[a-z]*(?:-|,|\s)?\s?\d{2,4})',string)

Я получил сверху регулярное выражение.

1 Ответ

0 голосов
/ 08 октября 2018

Изначально я хочу извлечь из строки период месяца и год (например, 17 мая - 17 августа).Я пытался использовать библиотеку Datefinder и Parser, но не смог извлечь ее.Но позже я попытался с помощью регулярного выражения, и он дал мне ответ, который мне нужен: ((?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z]*(?:-|\.|\s|,)\s?\d{,2}[a-z]*(?:-|,|\s)?\s?\d{2,4})' найдет месяц в данном регулярном выражении и затем найдет год.

a = ['WORK EXPERIENCE: ',
     'Cause + Effect Strategy & Marketing (CESM) | Rochester, New York ',
     '',
     '              May 17-Aug 17 ',
     '',
     '                  Jun 14-Jun 15 ',]

date = []
for text in a:

match = re.findall(r'((?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z]*(?:-|\.|\s|,)\s?\d{,2}[a-z]*(?:-|,|\s)?\s?\d{2,4})',text)
if match:
    date.append(match)
else:
    pass

print(date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...