如何区分 NoneType 和 regex 函数?

How to distinguish NoneType with regex function?

以下是我目前在工作中遇到的两个非常基本的问题示例:

import re
type(re.search('(Bob)(.*)(Builder)', "Bob the Builder" , re.IGNORECASE))

returns _sre.SRE_Match

import re
type(re.search('(Bob)(.*)(Builder)', "the Builder" , re.IGNORECASE))

returnsNoneType。如何测试数据类型是 _sre.SRE_Match 还是 NoneType 的条件?当我尝试执行代码时

import re
type(re.search('(Bob)(.*)(Builder)', "the Builder" , re.IGNORECASE)) is None

它 returns False 它应该返回 True。我在这里做错了什么?谢谢!

type(None) 不是 None,而是 NoneType。但是这里不需要 type ,只需要使用一个 bool:

if re.search(....): 
  print 'found!'

其实是在网上搜索了一下解决方法才搞明白的:

import re
if re.search('(Bob)(.*)(Builder)', "the Builder" , re.IGNORECASE):
    print 1
else:
    print 2