Python 为什么可以';我是否匹配IF语句中的真/假值?
我试图将搜索的输出与列表匹配,如果if语句允许,则运行代码。然而,即使我告诉if语句匹配True或False,if语句也永远不会继续 在python中运行搜索:Python 为什么可以';我是否匹配IF语句中的真/假值?,python,regex,python-2.7,list,if-statement,Python,Regex,Python 2.7,List,If Statement,我试图将搜索的输出与列表匹配,如果if语句允许,则运行代码。然而,即使我告诉if语句匹配True或False,if语句也永远不会继续 在python中运行搜索: >>> re.search(r'...$', 'abcde1234doc').group() in ['doc', 'rtf', 'txt'] >>> True 返回True,因此通过请求IF语句匹配True,它应该继续执行其代码。但这似乎不起作用 if re.search(r'...$', 'ab
>>> re.search(r'...$', 'abcde1234doc').group() in ['doc', 'rtf', 'txt']
>>> True
返回True,因此通过请求IF语句匹配True,它应该继续执行其代码。但这似乎不起作用
if re.search(r'...$', 'abcde1234doc').group() in ['doc', 'rtf', 'txt'] == True:
print'regex search matched!'
else:
print'regex search not matched'
当正则表达式搜索返回True时,我希望IF语句继续执行其代码,但是IF语句不匹配,直接转到ELSE。Python中的布尔运算符链
x in y == z
意味着
你可以把你的情况写成
if (re.search(r'...$', 'abcde1234doc').group() in ['doc', 'rtf', 'txt']) == True:
如果您愿意,但最好不要使用==True
,而是坚持使用
if re.search(r'...$', 'abcde1234doc').group() in ['doc', 'rtf', 'txt']:
在
==True
之前,尝试在整个表达式周围加上括号。如果在['doc'、'rtf'、'abcde1234doc').group()中重新搜索('r'、'abcde1234doc'):。只需删除==True
@Austin哦,这太好了!我会在我的生活中使用这个code@MrU确切地由于正则表达式搜索返回一个truthy值,因此这将处理该情况。
if re.search(r'...$', 'abcde1234doc').group() in ['doc', 'rtf', 'txt']: