我想返回的時間格式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