Python 3.5.2中使用正则表达式从邮件内容提取日期和月份
用正则表达式提取邮件日期和月份的Python实现
没问题,针对你给出的邮件转发文本,我们可以用Python的re模块轻松提取日期数字和月份缩写,直接赋值给对应的变量。
完整代码示例
import re # 原始邮件数据 email_data = """-------- Forwarded Message -------- Subject: Sample Report Date: Thu, 6 Apr 2017 16:39:19 +0000 From: test1@abc.com To: test2@xyz.com""" # 定义正则表达式模式,捕获日期和月份 pattern = r"Date: \w+, (\d+) (\w+) \d+" # 匹配目标内容 match_result = re.search(pattern, email_data) if match_result: # 提取分组内容并赋值 Date = int(match_result.group(1)) # 转成整数类型,需要字符串格式可去掉int() Month = match_result.group(2) print(f"Date = {Date}, Month = '{Month}'") else: print("未找到匹配的日期信息")
代码解释
- 正则模式拆解:
Date: \w+,:精准匹配邮件里的Date: Thu,部分,\w+用来匹配任意星期缩写(比如Mon、Tue等)(\d+):第一个捕获组,匹配1个或多个数字,对应我们要的日期数字(\w+):第二个捕获组,匹配3个字母的月份缩写(比如Apr、Jan等)\d+:匹配后面的年份数字,不需要捕获所以不加括号
- 变量赋值:通过
group(1)和group(2)分别提取两个捕获组的内容,日期转成整数类型是为了符合你期望的Date = 6格式,若需要字符串格式直接去掉int()即可
运行这段代码后,你会得到期望的输出:Date = 6, Month = 'Apr'
内容的提问来源于stack exchange,提问作者IamBatman
相关产品推荐
相关产品推荐

