regex - 使用正则表达式匹配精确的两位数
问题描述
我试图在 python 脚本中使用正则表达式从文件名中获取日期字符串。这是我的约会对象
'2012-09-25 ag.pdf'
要从此文件名中获取日期字符串,我正在使用这个正则表达式r'\d{4}[-]\d{1,2}[-]\d{1,2}'
并且它工作正常
但一些文件名也包含两位数的年份,对于那些正在尝试另一个正则表达式的人r'\d{2}-\d{2}-\d{2}'
'2012-09-25 ag.pdf'
还与r'\d{2}-\d{2}-\d{2}'
导致我的脚本出现问题的第二个正则表达式 ( ) 模式匹配
我如何在python中使用正则表达式来匹配不超过两位数
解决方案
您可以为这两种情况创建一个正则表达式:
^\d{2,4}-\d{1,2}-\d{1,2}
演示:https ://regex101.com/r/nZwZ58/4/
第一个版本的好处是更简单易读,坏处是匹配 3 位数的日期。
下一个更具体但更详细。
^\d\d(\d\d)?-\d{1,2}-\d{1,2}
推荐阅读
- rust - 如何使用从其他两个 HashMap 移动的值创建一个 HashMap?
- javascript - 在 Typescript 中向创建的 Redux Store 添加属性
- bootstrap-4 - 引导程序 4.3.1 下拉列表中的链接不起作用
- routing - 带有自定义 ValueMapper 的 TYPO3 RouteEnhancer
- ubuntu-16.04 - Ubuntu 16 上 yarn --version 的纱线语法错误
- java - 在 java 中,如何使用正则表达式模式来解析事件名称和两个数字字符串的“Event=Bell,time=9000,rings=5”?
- javascript - 如何将单个对象对象转换为对象数组?
- winforms - Windows 窗体 - 单击按钮将数据添加到列表视图
- java - 比较子实体列表时获取父实体 ID
- r - 如何在 kknn 函数中进行预测?图书馆(kknn)