简单的python正则表达式组无法解析日期

时间:2010-10-17 03:59:49

标签: python regex python-2.x regex-group

我正在尝试使用正则表达式解析日期,使用组,但python返回空列表。我没有做任何花哨的事情,只是12/25/10的东西。我希望它拒绝12 / 25-10。

date = re.compile("\d{1,2}([/.-])\d{1,2}\1\d{2}")

我已经尝试过在线正则表达式库,但他们的解决方案似乎也没有运行。有什么想法吗?

示例输入:“你好今天是10/18/10,时间是10:50 am” 希望输出:“10/18/10”

我正在运行Python 2.5。

3 个答案:

答案 0 :(得分:5)

使用原始字符串:

date = re.compile(r"\d{1,2}([/.-])\d{1,2}\1\d{2}")

否则,字符串文字中的\1被解释为字符1(标题的开始)。

编辑:要为日期组件添加组,请使用:

re.compile(r"(\d{1,2})([/.-])(\d{1,2})\2(\d{2})")

答案 1 :(得分:5)

你应该使用Python的内置strptime

答案 2 :(得分:2)

毫无疑问是矫枉过正,但“parsedatetime”库一直在为我工作:http://code.google.com/p/parsedatetime/

它在内部使用正则表达式,但不仅仅解析MM / DD / YY格式。