如何检查字符串的格式是否正确 (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
会是一个稍微好一点的正则表达式,它验证月份和分钟但不验证小时。
我正在编写一个需要导入日志文件的程序。 用户必须按照'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
会是一个稍微好一点的正则表达式,它验证月份和分钟但不验证小时。