Python正则表达式返回true / false

时间:2011-07-04 23:57:42

标签: python regex

使用Python正则表达式如何才能返回True / False?所有Python返回的是:

<_sre.SRE_Match object at ...>

6 个答案:

答案 0 :(得分:110)

如果您确实需要TrueFalse,请使用bool

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

正如其他答案所指出的那样,如果您只是将其用作ifwhile的条件,则可以直接使用它而不包含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