能否在if语句中获取并打印re.search()的匹配结果?
问题解答
你贴的代码不行,直接运行会触发NameError,因为match变量根本没被定义——re.search(regex, string)的匹配结果没有被赋值给它,程序不知道match指的是什么。
正确的写法分两种:
1. 先赋值再判断(兼容所有Python版本)
import re match = re.search(regex, string) if match: print(match)
先把re.search的结果存到match变量里,再判断变量是否为真(匹配成功时match是一个匹配对象,非空即真;匹配失败时是None,为假)。
2. 用海象运算符(Python 3.8及以上版本可用)
import re if match := re.search(regex, string): print(match)
海象运算符:=可以在判断条件里直接完成赋值,把re.search的结果存到match,同时判断这个结果是否为真,写法更简洁。
内容的提问来源于stack exchange,提问作者blahahaaahahaa
相关产品推荐
相关产品推荐

