我試圖匹配格式爲「0000」到「2459」的時間碼。如何匹配特定範圍內的數字,以便我可以特別匹配0到24之間的所有數字以及0到59之間的所有數字,而且沒有更多或更少的數字?如何使用Ruby正則表達式匹配多位數字範圍?
我懂得每一個人數字匹配,但不會做我想做的,因爲例如
/[0-2][0-4]/
將捕獲的數字0-4,10 - 14和20-24,那些失蹤在之間。所以我想捕獲所有包含多個數字。
我試圖匹配格式爲「0000」到「2459」的時間碼。如何匹配特定範圍內的數字,以便我可以特別匹配0到24之間的所有數字以及0到59之間的所有數字,而且沒有更多或更少的數字?如何使用Ruby正則表達式匹配多位數字範圍?
我懂得每一個人數字匹配,但不會做我想做的,因爲例如
/[0-2][0-4]/
將捕獲的數字0-4,10 - 14和20-24,那些失蹤在之間。所以我想捕獲所有包含多個數字。
下應該做的伎倆:
/(?:[01][0-9]|2[0-4])[0-5][0-9]/
說明:
?:
使括號非捕獲。塞巴斯蒂安的回答失敗時,code MOD 10 > 59
。 例如,它不會承認1080
使用 /(?:[01][0-9][0-9]|2(?:[0-3][0-9]|4[0-5]))[0-9]/
代替, 這需要一個4位數開始任一
+1很好的答案,很好的解釋。 – 2011-02-05 22:42:54