正则表达式从字符串中获取日期

时间:2011-05-11 09:26:19

标签: regex

我需要一个正则表达式来从以下字符串中获取日期

anything-2011.01.17-16.50.19.xml

这是正确的吗

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

3 个答案:

答案 0 :(得分:1)

这是检查格式YYYY.MM.DD-HH.MM.SS

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

但它不会验证日期或时间是否为有效值。

Online check on regexr

答案 1 :(得分:0)

尝试:

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

你也应该接受你最近的问题。

答案 2 :(得分: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$