首页 > 解决方案 > 使用正则表达式匹配精确的两位数

问题描述

我试图在 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中使用正则表达式来匹配不超过两位数

标签: regexpython-3.xdate

解决方案


您可以为这两种情况创建一个正则表达式:

^\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}

演示:https ://regex101.com/r/nZwZ58/3/


推荐阅读