用于提取月份和年份的Python正则表达式 [英] Python regular expression for extracting month and year
本文介绍了用于提取月份和年份的Python正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想从字符串中提取月份和年份.例如:
I want to extract month and year from string. For example:
如果我有字符串From August 2017 - September 2018
,则应该将'August 2017'
和'September 2018'
分为两组.我尝试了以下方法:
If I have a string From August 2017 - September 2018
then I should get 'August 2017'
and 'September 2018'
as two groups. I tried the following:
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
我们可以使用一些正则表达式来提取两个日期吗?
Can we have some regex to extract both the dates?
推荐答案
您的意思是这样吗? Regex演示.
Do you mean like this? 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')
这篇关于用于提取月份和年份的Python正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文