我的文字每周都会更改:

text = "Weekly Comparison, Week 50 October 28 - November 3, 2016 October 30 - November 5, 2015"


我正在寻找第一年和第二年的正则表达式模式。
(两者都会每周更改一次,因此我需要使用公式来捕获所有月,日,年)

我的输出应为以下内容:

2015 = November 5, 2015
2016 = November 3, 2016


我使用的框架不允许进行正则表达式捕获组或拆分,因此我需要专门针对此类字符串的公式。

谢谢!

最佳答案



根据我的原始评论

See regex in use here

(\w+\s+\d+,\s*(\d+))


注意:上面的正则表达式与regex101上的正则表达式不匹配。这是有目的的。 Regex101仅能演示替换的输出,因此我在regex之前加上了.*?以便正确显示预期的输出。



结果

输入项

Weekly Comparison, Week 50 October 28 - November 3, 2016 October 30 - November 5, 2015


输出量

2016 = November 3, 2016
2015 = November 5, 2015




用法

import re
regex = r"(\w+\s+\d+,\s*(\d+))"
str = "Weekly Comparison, Week 50 October 28 - November 3, 2016 October 30 - November 5, 2015"
for (date, year) in re.findall(regex, str):
    print year + ' = ' + date

07-24 22:26