如何识别并打印包含MM/DD/YY格式日期的文本行?
匹配MM/DD/YY格式日期并输出对应行
没问题,要识别字符串里的MM/DD/YY格式日期,直接用普通字符串匹配肯定行不通——你需要用正则表达式来匹配这种固定格式的模式。下面是具体的实现方案:
核心思路
我们需要定义一个正则规则,用来识别两位数字/两位数字/两位数字的日期格式,若需要严格校验的话,还会限定月份为01-12、日期为01-31。
完整代码实现
import re # 预编译正则表达式(提升匹配效率) # 严格匹配MM/DD/YY:月份范围01-12,日期范围01-31 date_regex = re.compile(r'(0[1-9]|1[0-2])/(0[1-9]|[12]\d|3[01])/\d{2}') # 替换成你的目标文件路径 with open('your_file.txt', 'r') as f: for line in f: # 检查当前行是否包含符合格式的日期 if date_regex.search(line): print(line.strip()) # strip()去除多余换行符,让输出更整洁
正则表达式拆解
(0[1-9]|1[0-2]):匹配合法月份——覆盖01-09或者10-12的所有情况(0[1-9]|[12]\d|3[01]):匹配合法日期——包含01-09、10-29、30-31的所有有效日期\d{2}:匹配两位年份(比如18、24这类格式)
简化版(宽松匹配)
如果你的数据源里不会出现无效日期(比如99/99/99这种明显不符合逻辑的格式),可以用更简洁的正则,只匹配格式不校验合法性:
date_regex = re.compile(r'\d{2}/\d{2}/\d{2}')
这样就能轻松筛选出包含目标日期格式的行了!
内容的提问来源于stack exchange,提问作者user8162541
相关产品推荐
相关产品推荐

