Python 正则表达式匹配或运算符

标签 python regex string time

我正在尝试匹配上午或下午的时间格式。

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/

相关文章:

python - 将多个QCheckBox插入到QTableWidget奇数行中

Javascript RegExp 测试失败

python - 从字符串python中删除数字

java - 关于java文件关闭

python - 非法指令(核心转储)tensorflow

python - AWS 情绪分析教程崩溃 "No module named nltk"

javascript - 正则表达式值检查不起作用

Python正则表达式拆分,任意长度的整数

sql - Oracle中添加逗号(,)

python - 行和列的总和