Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查字符串的格式是否正确(Python)_Python_String_Comparison - Fatal编程技术网

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

如何检查字符串的格式是否正确(Python),python,string,comparison,Python,String,Comparison,我正在编写一个需要导入日志文件的程序。 用户必须以“DD-HH.MM”(天、小时、分钟)的正确顺序输入文件名。有没有办法验证用户输入的顺序是否正确 提前感谢您可以使用正则表达式,也可以尝试使用time.strtime解析日期,查看是否存在任何异常。看 strtime方式可以是这样的: try: time.strptime(input_string, "%d-%H.%M") except ValueError: print("Incorrect date format") 一定要

我正在编写一个需要导入日志文件的程序。 用户必须以“DD-HH.MM”(天、小时、分钟)的正确顺序输入文件名。有没有办法验证用户输入的顺序是否正确


提前感谢

您可以使用正则表达式,也可以尝试使用
time.strtime
解析日期,查看是否存在任何异常。看

strtime
方式可以是这样的:

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

一定要检查文档,看看占位符(
%d
%H
,…)是否真正代表了要检查的范围和格式。您可以使用正则表达式,或者尝试使用
time.strtime
解析日期,看看是否有任何异常。看

strtime
方式可以是这样的:

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

一定要检查文档,看看占位符(
%d
%H
,…)是否真正代表了要检查的范围和格式

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

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


编辑:
[0123]\d-\d\d\.[0-5]\d
将是一个稍好的regexp,它验证月和分钟,但不验证小时。

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

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


编辑编辑:
[0123]\d-\d\d\[0-5]\d
将是一个稍微好一点的regexp,它验证月份和分钟,但不验证小时。

啊,你赢了我。谢谢:)如果答案对你有帮助的话,别忘了把它标为正确的。。。。我的Python副本似乎更喜欢
time.strtime(输入字符串,“%d-%H.%M”)
。我错过了什么吗?@GordThompson你什么都没错过
strtime
是正确的,
strftime
的作用正好相反。我的错。啊,你赢了我。谢谢:)如果答案对你有帮助的话,别忘了把它标为正确的。。。。我的Python副本似乎更喜欢
time.strtime(输入字符串,“%d-%H.%M”)
。我错过了什么吗?@GordThompson你什么都没错过
strtime
是正确的,
strftime
的作用正好相反。我的错。不过谢谢你的帮助。这是我的计算项目,所以这两个版本都非常有用,因为我可以比较并解释我为什么使用这种方式:)感谢您详细介绍regexp方式!您还可以使用
[0123]\d
而不是
\d\d
@Teyras确保day在正确的范围内。谢谢您的建议!我该怎么查时间呢?(即,如果第一个数字是0或1,则第二个数字可以是任何数字;如果第一个数字是2,则第二个数字可以是0-3)。这是我未完成的正则表达式:
[0123]\d-[012]\d\[0-5]\d
24小时格式的时间可以像这样匹配
([01]\d|2[0123])
。谢谢您的帮助。这是我的计算项目,所以这两个版本都非常有用,因为我可以比较并解释我为什么使用这种方式:)感谢您详细介绍regexp方式!您还可以使用
[0123]\d
而不是
\d\d
@Teyras确保day在正确的范围内。谢谢您的建议!我该怎么查时间呢?(即,如果第一个数字是0或1,则第二个数字可以是任何数字;如果第一个数字是2,则第二个数字可以是0-3)。这是我未完成的正则表达式:
[0123]\d-[012]\d\[0-5]\d
24小时格式可以像这样匹配
([01]\d|2[0123])