Python 正则表达式日期 YYYY-MM-DD HH :MM:SS

标签 python regex

示例数据: 站点、帐户、电子邮件地址、日期 01,123456789,test@gmail.com,2017-12-12 10:00:24

我想使用 if 语句将所有无效日期删除到排除文件并使用正则表达式将所有有效日期写入成功文件。

for row in reader:
                    SITE = row[0].strip()
                    SITE = SITE.rjust(2, '0')
                    ACCOUNT = row[1].strip()
                    ACCOUNT = ACCOUNT.rjust(9, '0')
                    EMAIL = row[2].strip()
                    DATE = row[3].strip()
                    DATA = (SITE, ACCOUNT,EMAIL,DATE)
                    if not re.match("^[0-9]+$", DATE):
                            csvWriter3.writerow(DATA)
                    else:
                            csvWriter.writerow(DATA)
                            csvWriter2.writerow(DATA)
    except IndexError:
        pass

最佳答案

不要为此使用正则表达式。使用 strptime .如果失败,那么您就知道日期格式错误(甚至是有效格式的无效日期,正如@JonClements 在评论中阐述的那样)。

from datetime import datetime

try:
    datetime.strptime(DATE, '%Y-%m-%d %H:%M:%S')
    # or date_object = datetime.strptime(DATE, '%Y-%m-%d %H:%M:%S')
    # if you need the actual date object later
except ValueError:
    pass  # handle invalid date
else:
    pass  # handle valid date

关于Python 正则表达式日期 YYYY-MM-DD HH :MM:SS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47771911/

相关文章:

python - 为什么异常/错误在 python 中评估为 True?

python - InfluxDB 缺少标签值(putInfluxDB nifi 处理器)

python:将(字符串)集列表转换为 scipy csr_matrix

python - 使用 re? 从文本中提取电话号码

python - 如何右键保存图片或文件?

java - 在 SymPy 中将 ** 替换为 Math.pow

Perl 中的正则表达式不匹配

java - 问题模式/匹配器

python - 如何替换两个或多个重复的 :punct: using re in python?

javascript - 使用正则表达式突出显示一组字符串