我正在尝试匹配上午或下午的时间格式。
i.e. 02:40PM
12:29AM
我正在使用以下正则表达式
timePattern = re.compile('\d{2}:\d{2}(AM|PM)')
但它一直只返回 AM
PM
没有数字的字符串。出了什么问题?
最佳答案
使用非捕获组 (?:
并引用匹配组。
使用re.I
进行不区分大小写的匹配。
import re
def find_t(text):
return re.search(r'\d{2}:\d{2}(?:am|pm)', text, re.I).group()
您还可以使用re.findall()
进行递归匹配。
def find_t(text):
return re.findall(r'\d{2}:\d{2}(?:am|pm)', text, re.I)
参见 demo
关于Python 正则表达式匹配或运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19821487/