Python 按日期范围捕获/分析条目

Python 按日期范围捕获/分析条目,python,regex,python-2.7,Python,Regex,Python 2.7,可以使用标准模块“re”捕获/解析从当前日期起3天的条目 下面是我想要捕获条目的示例文件 xx: xxxxxx ; xxxx: 2017-09-2T14:13:17 ; xxxxxxxx: xxxxxxxxxxxxxxxxxxxxxxxxxx 您必须使用re模块提取带有小时的字符串,然后: from datetime import datetime capturedEntries = [] THREE_DAYS = datetime.timedelta(3) # I suppose you

可以使用标准模块“re”捕获/解析从当前日期起3天的条目

下面是我想要捕获条目的示例文件

xx: xxxxxx ; xxxx: 2017-09-2T14:13:17 ; xxxxxxxx: xxxxxxxxxxxxxxxxxxxxxxxxxx 

您必须使用re模块提取带有小时的字符串,然后:

from datetime import datetime
capturedEntries = []
THREE_DAYS = datetime.timedelta(3)

# I suppose you'are reading lines in another way, but as an example...
for entry in entries:
    # I'm assuming each entry follows the format
    # xx: xxxxxx ; xxxx: 2017-09-2T14:13:17 ; xxxxxxxx: xxxxxxxxxxxxxxxxxxxxxxxxxx
    stringDate = re.search(r'\d{4}-\d{1,2}-\d{1,2}T\d{2}:\d{2}:\d{2}', line)
    if stringDate.group():
        parsedDate = datetime.strptime(stringDate.group(), '%Y-%m-%dT%H:%M:%S')
        timeFromDate = (datetime.today() - parsedDate)
        if timeFromDate > THREE_DAYS:
            # We save only the datetimes you asked for in datetime format
            # For string format, replace parsedDate for stringDate
            capturedEntries.append(parsedDate)

恕我直言,我认为你应该重新修订你的问题。re模块用于匹配正则表达式并替换它们,这里您要求提取(而不是捕获)3天以上的表达式。这意味着计算,而re模块不是为计算而设计的。请在你的问题中包括更多细节