截断/修剪lis中每行的日期和时间

2024-04-25 05:09:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表,它是一个电子邮件正文,每行末尾都有一个日期和时间戳。戳记的格式是一致的,因此可以从右侧计算表达式。以下是示例数据:

Dear Volunteer2018-05-21 19:59:15
Your booking has been updated at metrowitnessing.com .2018-05-21 19:59:15
Crown Street - June 15th, 10:00am2018-05-21 19:59:15
Anthony James (m: 04xxxxxxxx)2018-05-21 19:59:15
Monica Brown (m: 04xxxxxxxx)2018-05-21 19:59:15
Bob Smith (m: 04xxxxxxxx)2018-05-21 19:59:15
Status: Confirmed2018-05-21 19:59:15

尝试了以下表达式但没有结果,哪个“body”是上面列出的示例数据。你知道吗

import re
SourceList = input_data['body']
OutputList = filter(
lambda ThisWord: not re.match('^(?:(?:[0-9]{4}[:\/,]){2}[0-9]{2}|am|pm)$', ThisWord),
SourceList)

对于OutputList中的此值: 打印此值

我可以使用什么表达式删除附加到每行末尾的日期和时间戳?你知道吗


Tags: 数据re示例列表表达式电子邮件格式时间
3条回答

使用readlines加载要列出的文件,然后可以遍历它,截断最后19个字符([:-19])。这是硬编码和丑陋的,但它的工作。你知道吗

删除字符不能说明没有日期的条目,因此强烈建议不要使用不带RegEx区分的截断行的解决方案。您需要一个搜索日期的表达式。你知道吗

尝试以下表达式:

这将匹配日期的开始,并包括行的其余部分。你知道吗

\d{4}-\d{2}-\d{2}.*

要删除数据和时间戳,请在此处使用此reqex:

(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2})

您可以使用任何regex测试工具(如https://regexr.com/)轻松地测试示例数据。你知道吗

相关问题 更多 >