2017-10-11 76 views
0

的一條線,我忙airwars.org與智勝樞紐刮這個頁面,這是一個爛攤子。刮不同的日期格式的正則表達式

我想湊所有的日期,但他們格式不同:

  • 2017年9月4日
  • 九月五日至六日2017年
  • 9月6日至七日2017年
  • 9月8日/ 9th 2017

第一個是September \d+[a-z]+ 2017但我如何在RegEx的一行中定位它們?

+0

我不能說這明確,因爲我很少寫原創正則表達式的表情,但我認爲你需要做一些字符串用編程語言解析來解決這個問題。例如,8日/ 9日是兩個不同的日子。我想你會需要分割該成日期的不同實例。 – ThisClark

回答

1

假設你只想匹配九月的日期,那麼你可以使用這樣的模式:

September \d+th.*?2017 

但是,如果你想匹配所有的幾個月裏,那麼你可以使用

(?:January|...|December) \d+th.*?2017 

請記住,使用.*?將匹配字符串像September 4th something in 2017,這取決於您的源數據的模式可能是錯誤的。

因此,對於特定的數據格式,你發佈你可以使用這個其它圖案:

September \d+th(?:\s?[–\/-]\s?\d+th)?\s*2017