我正在尝试使用正则表达式解析日期,使用组,但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。
答案 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格式。