我对正则表达式和其他东西不太满意,因此我需要帮助。我必须检查输入值是否与特定的正则表达式格式匹配。这是我要使用的格式25D8H15M
。在这里D
,天数H
是小时,M
分钟是分钟。我需要正则表达式来检查字符串。谢谢
这是编码正则表达式的最简单方法:
if (str.matches("(?!$)(\\d+D)?(\\d\\d?H)?(\\d\\d?M)?"))
// format is correct
这允许每个部分都是可选的,但是从一开始就对输入结束持否定态度,这意味着那里一定有东西。
请注意,使用Java时,不必编码输入的start(^
)和end($
),因为String.matches()
必须匹配整个字符串,因此隐含了start和end 。
但是,这只是基本的正则表达式,因为99D99H99M
它将通过。有效格式的正则表达式为:
if (str.matches("(?!$)(\\d+D)?([0-5]?\\dH)?([0-5]?\\dM)?"))
// format is correct
这将小时和分钟限制为小数点0-59
,允许该范围内的值的可选前导零0-9
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句