如何区分NoneType与正则表达式功能?

时间:2017-04-02 23:35:43

标签: regex if-statement types boolean conditional

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

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

返回_sre.SRE_Match

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

返回NoneType。如何测试数据类型是_sre.SRE_Match还是NoneType的条件?当我尝试实现代码时

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

它应该返回False时返回True。我在这做什么不正确?谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

实际上,在尝试在线搜索解决方案后,我能够弄明白:

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