gpt4 book ai didi

Python 正则表达式 : Check for match and capture groups

转载 作者:行者123 更新时间:2023-11-28 22:10:23 25 4
gpt4 key购买 nike

我想使用 if 语句确保字符串与正则表达式匹配,并同时存储捕获组。我认为下面的代码显示了我想要的,但它在语法上是无效的。有没有办法优雅地实现以下目标?

yyyyq_format = "19984"

if regex_match = re.search("^(\d{4})(\d)$", yyyyq_format):
found_q = regex_match[2]
else:
raise ValueError("Format \"yyyyq\" is not followed.")

我知道以下作品(这是我唯一的选择吗?):

yyyyq_format = "19984"
regex_match = re.search("^(\d{4})(\d)$", yyyyq_format)

if regex_match:
found_q = regex_match[2]
else:
raise ValueError("Format \"yyyyq\" is not followed.")

最佳答案

PEP-572 (assignment expressions)实现了所谓的海象运算符,您可以使用它来评估表达式并将返回值一次性分配给一个名称,例如:

if regex_match := re.search("^(\d{4})(\d)$", yyyyq_format):
found_q = regex_match[2]
else:
raise ValueError("Format \"yyyyq\" is not followed.")

注意 : 之前的 =

这在(将)在 Python 3.8 中可用。

在此之前,您的第二个选择是我唯一相信的方式。

关于Python 正则表达式 : Check for match and capture groups,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56824211/

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