2017-10-11 122 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