我对正则表达式很敏感,我似乎无法绕过这个简单的任务。
我需要解析字符串中的两个日期,这两个日期总是有两种格式之一:
“2013年12月29日 - 2014年1月3日在您的房产中查询”
OR
“2013年12月29日至2014年1月3日,您的财产查询”
两种不同的日期格式让我失望。任何见解都将不胜感激!
答案 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})/