2015-06-29 36 views
-3

1)我有一個值爲11/06-13(YY/DD-MM)的字段,我如何使用正則表達式驗證此值。在java中使用正則表達式進行驗證

2)我有一個值爲08:00的字段,我如何使用正則表達式驗證此值。我有一個字段值爲2015-12-02 + 03:00(YYYY-MM-DD + hh:mm)我如何使用正則表達式驗證此值。

請幫助我是新來的正則表達式。

+2

使用'SimpleDateFormat'。 –

+1

你到目前爲止嘗試過什麼?你能告訴我們你的問題在哪裏嗎? 現在這個問題被認爲是題外話題。 (http://stackoverflow.com/help/on-topic) – Buurman

回答

1

只要閱讀關於正則表達式的Javadoc。 http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

您可以使用

Pattern.matches(regex, Input); 

驗證您的字符串。

對於你的第一個點那就是:

Pattern.matches("[0-9]{2}/[0-3][0-9]-(0|1)[0-9]", date); 

年的範圍可以從00到99,然後一個「/」。這一天的範圍可以從00到39,如果你想檢查一個有效的一天,你可以使用:

(0[1-9])|((1|2)[0-9])|(30|1) 

現在的日子必須在本月01和31

之間

的範圍可以從00到19在我的第一個例子。要避免這種情況,你可以使用:

(0[1-9])|(1[0-2]) 

完整的正則表達式:

[0-9]{2}/((0[1-9])|((1|2)[0-9])|(30|1))-((0[1-9])|(1[0-2])) 
+0

謝謝尼古拉..我試過下面的邏輯和它的工作 1.(0?[1-9] | [12] [0-9] | 3 [ 01])/(0 [1-9] | 1 [012]) - (1 [3-9] | 2 [0-9] | 3 [0-9] | 4 [0-9]) 2 (0 [1-9] |λ1 [1-9] | 2 [0-4])?0 :([0-9] | [1-5] [0-9] | 6 [0]) (0 | [1-9] | 1 [012]) - (0 [1-9] | [12] [0-9] | 3 [ 01])\\ + \\ d \\ d:\\ d \\ d – user3406322