gpt4 book ai didi

python - 存储 Python RegEx 多个组

转载 作者:行者123 更新时间:2023-12-01 09:09:45 25 4
gpt4 key购买 nike

我正在使用 python 抓取网站。返回的结果具有以下格式( https://regex101.com/r/irr14u/10 ),除了最后一次我得到 2 个日期匹配项(第一个匹配项:周四至周日、周二、周三和第二个匹配项)之外,一切正常:周一)

我正在使用以下代码来获取我想要的值。我使用 BeautifoulSoup 来获取 movieDate 字符串,但在这里我对其进行了硬编码。

movieDate="Thur.-Sun., Tue., Wed.: 20.50/ 23.00, Mon. 23.00"

weekDays=re.match(',? *(?P<weekDays>[^\d:\n]+):? *(?P<startTime>[^,\n]+)', movieDate).groupdict()['weekDays']
startTime=re.match(',? *(?P<weekDays>[^\d:\n]+):? *(?P<startTime>[^,\n]+)', movieDate).groupdict()['startTime']

我想创建一个字典,如下所示(它有两个键,因为有两个 startTime 值);第一个关键是周四至周日、周二、周三。值 =20.50/23.00第二个键是星期一。值=23:00。有时可能会有一把或多于两把 key 。所以字典如下;

dictionary={ Thur.-Sun., Tue., Wed.: 20.50/ 23.00, Mon.: 23.00}

有什么建议可以以一种非沼泽的方式实现这一目标吗?

最佳答案

您可以使用 finditer 函数实现所需的输出,将捕获的组的结果动态附加到字典中。

Python 代码片段:

import re
movieDate = """
Thur.-Sun., Tue., Wed.: 20.50/ 23.00, Mon. 23.00
"""

d = dict();
r = re.compile(',? *(?P<weekDays>[^\d:\n]+):? *(?P<startTime>[^,\n]+)')
for m in r.finditer(movieDate):
d[m.group(1)] = m.group(2)

print(d)

打印:

{'Thur.-Sun., Tue., Wed.': '20.50/ 23.00', 'Mon. ': '23.00'}

关于python - 存储 Python RegEx 多个组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51752581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com