python - 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
我在这里错过了什么吗?还有比这更好的方法吗?
解决方案
您只是缺少一些括号和另一组,您必须将要恢复的所有内容括在括号中。
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))
推荐阅读
- python - 如何使用python在Excel中插入一个值
- react-native - react-native Expo 的 Babel 配置
- go - golang中的关机信号
- postgresql - 在 Postgres 中将字符串列表转换为列名
- kotlin - Kotlin 后备包装器
- javascript - 如何在反应js中滚动到页面的某个部分
- c# - 如何在 EF Core 中添加带有列表和逗号分隔字段的过滤器
- nlp - 如何理解 BertModel 中回报的 hidden_states?(huggingface-transformers)
- variables - 多值 Prometheus 查询 Grafana
- excel - 用户表单中的全局变量值未更新