Регулярное выражение Python для извлечения месяца и года - PullRequest
0 голосов
/ 20 марта 2019

Я хочу извлечь месяц и год из строки.Например:

Если у меня есть строка From August 2017 - September 2018, тогда я должен получить 'August 2017' и 'September 2018' как две группы.Я попробовал следующее:

import re

regex = r'(\b\d{1,2}\D{0,3}\b-)?\b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|(Nov|Dec)(?:ember)?)\D?(\d{1,2}\D?)?\D?((19[7-9]\d|20\d{2})|\d{2})'
experience = re.findall(regex, 'August 2017 - Sep 2018')
print(experience)

Это возвращает [('', '', '20', '17', ''), ('', '', '20', '18', '')]

Я также попытался re.search :

import re

regex = r'(\b\d{1,2}\D{0,3}\b-)?\b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|(Nov|Dec)(?:ember)?)\D?(\d{1,2}\D?)?\D?((19[7-9]\d|20\d{2})|\d{2})'
experience = re.search(regex, 'August 2017 - Sep 2018')
print(experience.group())

Это возвращает толькоAugust 2017

Можем ли мы получить какое-нибудь регулярное выражение для извлечения обеих дат?

1 Ответ

0 голосов
/ 20 марта 2019

Вы имеете в виду, как это? Regex demo .

import re

string = "From August 2017 - September 2018"
month = re.search("(?P<fmonth>\w+.\d+)\s+\-\s+(?P<smonth>\w+.\d+)", string)
month = month.groups()

print (month)

Выход:

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