Python 正则表达式返回 true/false

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

<_sre.SRE_Match object at ...>
201285 次浏览

Match对象始终为真,如果没有匹配,则返回 None。只需测试是否为真。

if re.match(...):

Ignacio Vazquez-Abrams 是对的。但是为了详细说明,re.match()将返回计算结果为 FalseNone,或者返回匹配对象,如他所说,匹配对象将始终是 True。只有在需要关于与正则表达式匹配的部分的信息时,才需要签出 match 对象的内容。

一种方法是对返回值进行测试。因为你得到的是 <_sre.SRE_Match object at ...>,这意味着它将被评估为真。当正则表达式不匹配时,返回值 Nothing,计算结果为 false。

import re


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

产生 hi作为输出。

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

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

正如其他答案所指出的那样,如果您只是将它用作 ifwhile的条件,那么您可以直接使用它,而无需在 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 默认执行的操作)。参考: