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

1 投票
3 回答
862 浏览
提问于 2025-04-16 05:37

我正在尝试用正则表达式来解析日期,使用分组,但Python返回的是空列表。我并没有做什么复杂的事情,只是像12/25/10这样的格式。我希望它能拒绝12/25-10这样的格式。

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

我试过一些在线的正则表达式库,但它们的解决方案似乎也不管用。有没有什么想法?

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

期望输出:“10/18/10”

我使用的是Python 2.5。

3 个回答

2

虽然可能有点过于复杂,但我一直在用“parsedatetime”这个库,它对我很有效:http://code.google.com/p/parsedatetime/

这个库内部确实使用了正则表达式,但它的功能远不止解析MM/DD/YY这种日期格式。

5

你应该使用Python自带的 strptime 函数。

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})")

撰写回答