Python regex从字符串获取时间戳

2024-05-18 23:40:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是python2.7

我有一个弦,它的形式类似于:

A: u'As of 9:30 AM EDT. 
B: u'As of 10:15 AM EDT. 
C: u'As of 4:30 PM EDT. 

这是我的代码:

^{pr2}$

我的代码和B不匹配。为什么?!在


Tags: of代码asam形式pmpr2edt
3条回答

下面是示例的link。在

import re

pat = re.compile(r'(\d{1,2}:\d{2}\s(?:AM|PM))')
results = re.findall(pat, YOUR_STRING)
# matches HH:MM AM/PM

问题在于第二个数字,它被正则表达式限制在1-9的范围内,这与第二个示例不匹配。在

可能的regex可以是:[01]?[0-9]:[0-5][0-9]\s[AP]M

注意:您不需要将|字符放在方括号之间(正如您所做的那样,以匹配AM/PM);方括号中的所有字符都是自动的或'd

小时的第二位数不能是0,只能是1-9。因此,您的代码将匹配11:15 AM,而不是{}。在

将正则表达式替换为

'[0-9]?[0-9]{1}:[0-9]{2}\s[A|P]M'

它应该会起作用的。在

您甚至可以使用

^{pr2}$

相关问题 更多 >

    热门问题