繁体   English   中英

如何在Python中匹配方括号中的日期时间

[英]How to match datetime in square brackets in Python

我正在尝试匹配方括号中的日期时间。 我知道必须使用正则表达式,我不太熟悉。

我试图匹配的是: [2020-09-04 02:17:52,146]可以是任何时间,而不是硬编码的时间。

到目前为止我尝试过的: line = re.sub(r"\\s+(?=\\d{2}(?:\\d{2})?\\b)", "", "")我期待什么时候我通过line在方括号的日期时间的每场比赛用一个空字符串替换。 但我只对我的问题中定义的方括号中的日期时间的正则表达式感兴趣,不希望用空字符串替换。

您不需要使用正则表达式。 一种选择是尝试使用给定格式将其解析为datetime对象(即使您从未实际使用过该对象),如果它给您一个ValueError则该字符串不是该格式。

import datetime

line = "[2020-09-04 02:17:52,146]"

format = "[%Y-%m-%d %H:%M:%S,%f]"

try:
    dt = datetime.datetime.strptime(line, format)
    print(dt)
except ValueError:
    print("string is not in that format")

这种模式应该可以解决问题:

r'\[\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3}\]'

证明: https : //regexr.com/5beov

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM