2024-05-18 23:40:06 发布
网友
我使用的是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.
这是我的代码:
我的代码和B不匹配。为什么?!在
下面是示例的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
[01]?[0-9]:[0-5][0-9]\s[AP]M
注意:您不需要将|字符放在方括号之间(正如您所做的那样,以匹配AM/PM);方括号中的所有字符都是自动的或'd
|
小时的第二位数不能是0,只能是1-9。因此,您的代码将匹配11:15 AM,而不是{}。在
11:15 AM
将正则表达式替换为
'[0-9]?[0-9]{1}:[0-9]{2}\s[A|P]M'
它应该会起作用的。在
您甚至可以使用
下面是示例的link。在
问题在于第二个数字,它被正则表达式限制在1-9的范围内,这与第二个示例不匹配。在
可能的regex可以是:
[01]?[0-9]:[0-5][0-9]\s[AP]M
注意:您不需要将
|
字符放在方括号之间(正如您所做的那样,以匹配AM/PM);方括号中的所有字符都是自动的或'd小时的第二位数不能是0,只能是1-9。因此,您的代码将匹配}。在
11:15 AM
,而不是{将正则表达式替换为
它应该会起作用的。在
您甚至可以使用
^{pr2}$相关问题 更多 >
编程相关推荐