python正则expression式返回true / false
使用python正则expression式你怎么能得到一个真/假返回? 所有的Python返回是
<_sre.SRE_Match object at ...>
Match
对象始终为真,如果不匹配则返回None
。 只要testing真实性。
if re.match(...):
如果你真的需要True
或False
,只需使用bool
>>> bool(re.search("hi", "abcdefghijkl")) True >>> bool(re.search("hi", "abcdefgijkl")) False
正如其他答案已经指出,如果你只是用它作为一个if
或while
的条件,你可以直接使用它,而不包装在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
作为输出。