2011-05-11 218 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