检查时间格式的Java正则表达式

检查时间格式的Java正则表达式,java,regex,string,Java,Regex,String,我有一个字符串,我需要验证其格式-1D23H13M40S。(不区分大小写) 正则表达式可以是什么 我试过了 myString.matches("[^0-9MHDS]*") 试试这个: \d+D(\d|[01]\d|2[0-4])H(\d|[0-5]\d|60)M(\d|[0-5]\d|60)S 或者,此选项不包括时间限制,例如24小时、60米和60秒: \d+D(\d|[01]\d|2[0-3])H(\d|[0-5]\d)M(\d|[0-5]\d)S 我尝试了-myString.matc

我有一个字符串,我需要验证其格式-1D23H13M40S。(不区分大小写)

正则表达式可以是什么

我试过了

myString.matches("[^0-9MHDS]*") 
试试这个:

\d+D(\d|[01]\d|2[0-4])H(\d|[0-5]\d|60)M(\d|[0-5]\d|60)S
或者,此选项不包括时间限制,例如
24小时
60米
60秒

\d+D(\d|[01]\d|2[0-3])H(\d|[0-5]\d)M(\d|[0-5]\d)S

我尝试了-myString.matches(“[^0-9MHDS]*”),它是模式前的负号,还是只是您添加的用于将模式与文本其余部分分开的东西?没错,我进行了更新。小时数不应超过24分60秒:)@nhahtdh,好的,我再次更新了它。@Gabro添加了一个替代模式。现在可以了。但它不能处理案件不敏感的问题。在模式的开头添加一个
(?i)
,以启用它。