2011-05-11 219 views
1

獲取日期我需要一個正則表達式來獲取日期了以下字符串正則表達式從字符串

anything-2011.01.17-16.50.19.xml 

的這是一個正確的

^\\.(.+)-([0-9.]+-[0-9.]+)\\.xml$ 

+0

您是否得到正確的結果? – Syjin 2011-05-11 09:29:02

+0

這必須有多強大?它會匹配你的字符串,如果你拿出第一個'\',但也會匹配(例如)任何東西-1.1.1.1 ..... 1 ..- .. xml' – verdesmarald 2011-05-11 09:29:27

回答

1

這這裏檢查格式YYYY.MM.DD-HH.MM.SS

^(.*?)-(\d{4}(?:\.\d{2}){2}-\d{2}(?:\.\d{2}){2})\.xml$ 

但它不驗證,如果日期或時間是一個有效的值。

Online check on regexr

0

嘗試用:

^.*?-([0-9.]+)-([0-9.]+)\..*$ 

你也應該接受你最近的問題。

+0

以及這隻給我16.50.19而不是2011.01.17-16.50.19。 – 2011-05-11 10:25:55

+0

它以兩組形式返回它 - 首先你有日期,然後在第二時間有空。如果你將'([0-9。] +) - ([0-9。] +)'改爲'([0-9。] + - [0-9。] +)' – hsz 2011-05-11 10:29:56

0

以下正則表達式有點嚴格。它將匹配1900年至2099年的範圍內的年份,01至12年的月份以及01至31年的日期。

^.*?-((19|20)\d\d\.(0[1-9]|1[1-2])\.(0[1-9]|[12][0-9]|3[01]))-.*?.xml$ 
+0

10月10日月MM檢查失敗。更精確的:^。*? - ((19 | 20)\ d \ d \。(0 [1-9] | 1 [0-2])\。(0 [1-9] | [12] [0 -9] | 3 [01])) - *?XML $ – mrtipale 2016-11-18 06:51:21