我希望使用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.")
found_q
或引发异常。 - Andrej Keselymatch(2)
轻松获取所需的匹配项,并且只需检查是否存在匹配项即可获得结果时,使用for
循环有什么意义呢?这是微不足道的,也是Pythonic的。 - heemaylregex_match
)。 - Andrej Kesely