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

2025-02-18 09:24:00
admin
原创
30
摘要:问题描述:我正在尝试匹配 AM 或 PM 的时间格式。i.e. 02:40PM 12:29AM 我正在使用以下正则表达式timePattern = re.compile('d{2}:d{2}(AM|PM)') 但它始终只返回AM PM字符串,没有数字。出了什么问题?解决方案 1:使用非捕获组(?:...

问题描述:

我正在尝试匹配 AM 或 PM 的时间格式。

i.e. 02:40PM
     12:29AM 

我正在使用以下正则表达式

timePattern = re.compile('d{2}:d{2}(AM|PM)')

但它始终只返回AM PM字符串,没有数字。出了什么问题?


解决方案 1:

使用非捕获组(?:并引用匹配组。

用于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

解决方案 2:

使用非分隔的捕获组(?:...)

>>> from re import findall
>>> mystr = """
... 02:40PM
... 12:29AM
... """
>>> findall("d{2}:d{2}(?:AM|PM)", mystr)
['02:40PM', '12:29AM']
>>>

另外,您可以将正则表达式缩短为dd:dd(?:A|P)M

解决方案 3:

听起来您正在访问组 1,但您需要访问组 0。

正则表达式中的组如下:

d{2}:d{2}(AM|PM)
           |-----|  - group 1
|----------------|  - group 0 (always the match of the entire pattern)

您可以通过以下方式观看整场比赛:

timePattern.match('02:40PM').group(0)

解决方案 4:

您没有捕获小时、分钟字段:

>>> import re
>>> r = re.compile('(d{2}:d{2}(?:AM|PM))')
>>> r.search('02:40PM').group()
'02:40PM'
>>> r.search('Time is 12:29AM').group()
'12:29AM'

解决方案 5:

您是否意外地抓取了第一个集群(与括号中的模式部分匹配的内容)而不是“第 0 个”集群(即整个匹配)?

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1324  
  IPD研发管理体系作为一种先进的研发管理理念和方法,对于打造优质产品体验起着至关重要的作用。它涵盖了从产品规划、研发、上市到生命周期管理的全流程,通过整合资源、优化流程、加强团队协作等方式,确保产品能够精准满足用户需求,提升用户满意度和忠诚度。IPD研发管理体系的核心原则IPD研发管理体系以市场驱动为核心原则。这意味着...
IPD集成产品开发   8  
  IPD(Integrated Product Development)产品开发流程作为一种先进的产品开发管理模式,在众多企业中得到广泛应用。它强调跨部门团队协作、并行工程以及基于市场的产品开发理念,旨在提高产品开发效率、缩短产品上市时间、提升产品质量。而成本控制在产品开发过程中至关重要,关乎企业的利润空间和市场竞争力。...
华为IPD流程   6  
  IPD(Integrated Product Development)产品开发流程作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用。它从多个维度对产品开发过程进行优化和整合,为企业创新提供了强大的支撑。通过实施IPD产品开发流程,企业能够更加高效地将创意转化为具有市场竞争力的产品,从而在激烈的市场竞争中占据优...
华为IPD流程管理   10  
  华为作为全球知名的科技企业,其产品质量在市场上有口皆碑。华为IPD产品开发流程在确保产品质量方面发挥了至关重要的作用。IPD(Integrated Product Development)即集成产品开发,是一套先进的、成熟的产品开发管理思想、模式和方法。它打破了传统产品开发中各部门之间的壁垒,强调跨部门团队协作,从产品...
IPD集成产品开发流程   9  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用