2013-10-23 52 views
0

我用正則表達式和我似乎無法包裹我的頭圍繞這個簡單的任務。解析日期從字符串 - 正則表達式

我需要在其中總是有兩種格式之一的字符串解析出兩個日期:

「詢問你的財產爲2013年12月29日 - 2014年1月3日」

OR

「2013年12月29日至2014年1月3日期間,您的物業查詢」

2種不同的日期格式將我拋棄。任何見解將不勝感激!例如

回答

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

你並不真正需要的羣體,你的方式」已經寫了第一個。 – FrankieTheKneeMan

+0

我假設OP想要提取日期,然後組需要。 – detunized

+0

不是第一個,第一個只會在交替之前匹配所有的東西,或者它之後的所有東西,這使得分組變得冗餘。 – FrankieTheKneeMan