我想返回的时间格式HH:MM AM | PM(上午11:45),或任何时候,该正则表达式匹配:时间正则表达式的问题
String meridian = "^(0[1-9]|[10-12]):(0[1-9]|[11-59])\\s(AM|PM|am|pm)";
但它不是为我工作。
我想返回的时间格式HH:MM AM | PM(上午11:45),或任何时候,该正则表达式匹配:时间正则表达式的问题
String meridian = "^(0[1-9]|[10-12]):(0[1-9]|[11-59])\\s(AM|PM|am|pm)";
但它不是为我工作。
[10-12]
相当于[1012]
这相当于[012]
[11-59]
同样相当于[123459]
使用:
^(0[0-9]|1[0-2]):[0-5][0-9]\\s(AM|PM|am|pm)$
如何修改正则表达式呢? – pervs123 2012-07-20 13:47:40
[...]
是一组字符,而不是数字的。
要匹配01
和12
之间的所有数字,请使用(0[1-9]|1[0-2])
。
要匹配00
和59
之间的所有号码,使用[0-5][0-9]
'[10-12]'和'[11-59]'不要吝啬你认为他们这样做。字符组中的'-'不适用于两位数字,所以'[11-59]'表示一个'1'或'1-5'或'9'。 – mellamokb 2012-07-20 13:44:54
为什么你想使用正则表达式而不是简单地试图解析值? – 2012-07-20 13:45:33