0

我对正则表达式很糟糕,我似乎无法完成这个简单的任务。

我需要解析出字符串中的两个日期,该字符串始终具有以下两种格式之一:

“2013 年 12 月 29 日至 2014 年 1 月 3 日在您的物业询价”

或者

“2013 年 12 月 29 日至 2014 年 1 月 3 日在您的物业询价”

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

4

1 回答 1

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})/

显然它们都可以组合在一起

/(\d{2} (?:January|December), \d{4}|(?:January|December) \d{2}, \d{4}|(?:Jan|Dec) \d+ - \d+, \d{4})/
于 2013-10-23T17:51:55.767 回答