使用 Python 正则表达式如何得到返回的 True/False? 所有的 Python 返回值是:
True
False
<_sre.SRE_Match object at ...>
Match对象始终为真,如果没有匹配,则返回 None。只需测试是否为真。
Match
None
if re.match(...):
Ignacio Vazquez-Abrams 是对的。但是为了详细说明,re.match()将返回计算结果为 False的 None,或者返回匹配对象,如他所说,匹配对象将始终是 True。只有在需要关于与正则表达式匹配的部分的信息时,才需要签出 match 对象的内容。
re.match()
一种方法是对返回值进行测试。因为你得到的是 <_sre.SRE_Match object at ...>,这意味着它将被评估为真。当正则表达式不匹配时,返回值 Nothing,计算结果为 false。
import re if re.search("c", "abcdef"): print "hi"
产生 hi作为输出。
hi
如果您真的需要 True或 False,只需使用 bool
bool
>>> bool(re.search("hi", "abcdefghijkl")) True >>> bool(re.search("hi", "abcdefgijkl")) False
正如其他答案所指出的那样,如果您只是将它用作 if或 while的条件,那么您可以直接使用它,而无需在 bool()中进行包装
if
while
bool()
我的方法是:
import re # Compile p = re.compile(r'hi') # Match and print print bool(p.match("abcdefghijkl"))
您可以使用 re.match()或 re.search()。 Python 基于正则表达式提供了两种不同的基本操作: re.match()仅在字符串的开头检查匹配,而 re.search()检查字符串中的任何位置(这是 Perl 默认执行的操作)。参考:
re.search()