从字符串 - 正则表达式解析日期

时间:2013-10-23 17:47:44

标签: regex parsing date expression

我对正则表达式很敏感,我似乎无法绕过这个简单的任务。

我需要解析字符串中的两个日期,这两个日期总是有两种格式之一:

“2013年12月29日 - 2014年1月3日在您的房产中查询”

OR

“2013年12月29日至2014年1月3日,您的财产查询”

两种不同的日期格式让我失望。任何见解都将不胜感激!

1 个答案:

答案 0 :(得分:1)

例如

/(\d+ \w+, \d+|\w+ \d+, \d+)/。试试Rubular

当然,它会提取更多内容,例如2013 NotReallyAMonth, 12345。但是,如果您在输入中没有看起来像日期的内容,但实际上没有日期可能会有效。

你可以让正则表达式更强大,但对匹配的内容应用更多限制:

/(\d{2} (?:January|December), \d{4}|(?:January|December) \d{2}, \d{4})/

在这种情况下,日期总是两位数,年份为4.明确列出月份(您必须列出所有这些数字)。

更新:对于范围,它将是一个不同的正则表达式:

/((?:Jan|Dec) \d+ - \d+, \d{4})/

显然他们都可以combined together

/(\d{2} (?:January|December), \d{4}|(?:January|December) \d{2}, \d{4}|(?:Jan|Dec) \d+ - \d+, \d{4})/