python正则expression式返回true / false

使用python正则expression式你怎么能得到一个真/假返回? 所有的Python返回是

<_sre.SRE_Match object at ...> 

Match对象始终为真,如果不匹配则返回None 。 只要testing真实性。

 if re.match(...): 

如果你真的需要TrueFalse ,只需使用bool

 >>> bool(re.search("hi", "abcdefghijkl")) True >>> bool(re.search("hi", "abcdefgijkl")) False 

正如其他答案已经指出,如果你只是用它作为一个ifwhile的条件,你可以直接使用它,而不包装在bool()

伊格纳西奥·巴斯克斯 – 艾布拉姆斯是正确的。 但是要详细说明一下,re.match()将会返回None,它的计算结果为False,或者是一个匹配对象,如他所说,它总是为True。 只有当您需要关于与正则expression式匹配的部分的信息时,才需要检查匹配对象的内容。

其中一种方法就是testing返回值。 因为你得到<_sre.SRE_Match object at ...>它意味着这将评估为真。 如果正则expression式不匹配,则返回值为None,其值为false。

 import re if re.search("c", "abcdef"): print "hi" 

产生hi作为输出。