你们怎么有0-9的没看太懂,这样不就行了么,有什么我没考虑到的么
Topic source你可以下载一下测试练习看看,其中
"24:00:00"
"23:60:59"
"10:1:2"
都应该为不匹配,但你的代码会认为它们都是匹配的。
因为你的pattern:
"(\\d{0,24}):(\\d{0,59}):(\\d{0,59})"
表示为
0到24个任意数字(0-9) : 0到59个任意数字(0-9) : 0到59个任意数字(0-9)
比如:"12345678901234567890::0987654321" 都会被认为是匹配的,
因为它是20个数字(在0到24的范围内) 加冒号, 加0个数字(在0到59的范围内), 加10个数字(在0到59的范围内)
要想匹配0到23(匹配0到24是不对的,因为小时数最大为23),应该写为:
"[0-1][0-9]|2[0-3]"
它表示:
匹配00到19 或 匹配 20到23
- 1
源