英文:
Regex for comma separated time in HH:mm or HH:mm:ss in Java e.g. 12:00,13:03:21
问题
我需要可以匹配逗号分隔的时间的正则表达式,例如 12:00、13:03:21、12:50,逗号分隔的时间可以有任意数量。在代码中,我正在使用逗号(,)来拆分,我使用 match 函数来检查这个正则表达式。
英文:
I need regex which can match Comma separated time like 12:00,13:03:21,12:50 there can be any number of comma separated times. I am splitting this with , in code I am using match function to check this regex
答案1
得分: 1
以下正则表达式可以实现这个目标:
^(?:[01]\d|2[1-3]):[0-5]\d(?::[0-5]\d)?(?:,(?:[01]\d|2[1-3]):[0-5]\d(?::[0-5]\d)?)*$
你可以在这里尝试。
请注意,如果你的代码对输入执行的操作不仅仅是验证(即如果你将要使用这些时间,进行任何类型的时间计算),那么更合理的做法是将字符串按,
分割,然后使用LocalTime.parse(CharSequence text)
验证部分并将它们映射到更有用的数据类型中。
英文:
The following regex would do the trick :
^(?:[01]\d|2[1-3]):[0-5]\d(?::[0-5]\d)?(?:,(?:[01]\d|2[1-3]):[0-5]\d(?::[0-5]\d)?)*$
You can try it here.
Note that if your code is doing anything more with that input than validating it (i.e. if you're going to use the times as such, do any kind of time arithmetics) then it would make more sense to simply split the string over ,
and then use LocalTime.parse(CharSequence text)
to validate the parts while mapping them into a more useful datatype.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论