如何检查字符串的格式是否正确 (Python)

How to check string is laid out in correct format (Python)

我正在编写一个需要导入日志文件的程序。 用户必须按照'DD-HH.MM'(日、时、分)的正确顺序输入文件名。有什么方法可以验证用户输入的顺序是否正确?

提前致谢

您可以使用正则表达式,或者尝试用 time.strptime 解析日期,看看是否有异常。参见 https://docs.python.org/2/library/time.html#time.strptime

strptime 方式可能是这样的:

try:
    time.strptime(input_string, "%d-%H.%M")
except ValueError:
    print("Incorrect date format")

务必检查文档并查看占位符(%d%H、...)是否真正代表了您要检查的范围和格式

你可以尝试使用这个正则表达式:\d\d-\d\d\.\d\d(我不擅长写正则表达式,如果我错了请纠正我)。您可能还想检查日期/小时/分钟值是否有效(即在范围内)。

import re
input = '12-12.12'
if re.match('\d\d-\d\d\.\d\d', input):
    print("it matches!")
else:
    print("it doesn't match!")

编辑:上面的答案可能更好。

编辑 编辑: [0123]\d-\d\d\.[0-5]\d 会是一个稍微好一点的正则表达式,它验证月份和分钟但不验证小时。