首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于提取月份和年份的Python正则表达式

用于提取月份和年份的Python正则表达式
EN

Stack Overflow用户
提问于 2019-03-20 01:20:32
回答 1查看 1K关注 0票数 0

我想从字符串中提取月份和年份。例如:

如果我有一个字符串From August 2017 - September 2018,那么我应该将'August 2017''September 2018'作为两个组。我尝试了以下几点:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

我们能用一些正则表达式来提取这两个日期吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-20 01:30:35

你是说这样吗?Regex演示

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
('August 2017', 'September 2018')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55252242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档