使用Python正则表达式如何才能返回True
/ False
?所有Python返回的是:
<_sre.SRE_Match object at ...>
答案 0 :(得分:110)
如果您确实需要True
或False
,请使用bool
>>> bool(re.search("hi", "abcdefghijkl"))
True
>>> bool(re.search("hi", "abcdefgijkl"))
False
正如其他答案所指出的那样,如果您只是将其用作if
或while
的条件,则可以直接使用它而不包含bool()
答案 1 :(得分:98)
Match
个对象始终为true,如果没有匹配则返回None
。只是测试真实性。
if re.match(...):
答案 2 :(得分:7)
Ignacio Vazquez-Abrams是对的。但要详细说明,re.match()
将返回评估为None
的{{1}}或匹配对象,如他所说,它将始终为False
。只有当您需要有关与正则表达式匹配的部分的信息时,才需要检查匹配对象的内容。
答案 3 :(得分:5)
执行此操作的一种方法是测试返回值。因为你得到<_sre.SRE_Match object at ...>
,这意味着这将评估为真。当正则表达式不匹配时,您将返回值None,其值为false。
import re
if re.search("c", "abcdef"):
print "hi"
生成hi
作为输出。
答案 4 :(得分:0)
这是我的方法:
import re
p = re.complie(r'hi')
print bool(p.match("abcdefghijkl"))
答案 5 :(得分:0)
您可以使用re.match()
或re.search()
。
Python根据正则表达式提供了两种不同的基本操作:re.match()
仅在字符串的开头检查匹配项,而re.search()
在字符串的任何位置检查匹配项(这是Perl的默认操作) )。请参阅this