首页 > 解决方案 > Python 正则表达式搜索不显示月份文本

问题描述

我正在尝试针对 RegEx 模式验证字符串,然后我想要模式搜索中的月份和年份。模式匹配很好,我可以看到日期和年份,但月份为空

import re

txt = '25-Nov-18'
pattern = re.compile('^(\d{1,2})(\/|-)[a-zA-Z]{3}(\/|-)(\d{2})$')
if pattern.match(txt):
    m = pattern.search(txt)
    print(m.group(1), m.group(2), m.group(3), m.group(4))

结果是

25 - - 18

仅供参考: m.group(0) 是25-Nov-18

我在这里错过了什么吗?还有比这更好的方法吗?

标签: pythonregex

解决方案


您只是缺少一些括号和另一组,您必须将要恢复的所有内容括在括号中。

import re

txt = '25-Nov-18'
pattern = re.compile('^(\d{1,2})(\/|-)([a-zA-Z]{3})(\/|-)(\d{2})$')
if pattern.match(txt):
    m = pattern.search(txt)
    print(m.group(1), m.group(2), m.group(3), m.group(4), m.group(5))

推荐阅读