问题:Python正则表达式返回true / false
使用Python正则表达式如何获得True
/ False
返回?所有Python回报是:
<_sre.SRE_Match object at ...>
回答 0
Match
对象始终为true,None
如果不匹配,则返回。只是测试真实性。
if re.match(...):
回答 1
如果您确实需要True
或False
,请使用bool
>>> bool(re.search("hi", "abcdefghijkl"))
True
>>> bool(re.search("hi", "abcdefgijkl"))
False
正如其他答案所指出的那样,如果您只是将其用作if
or 的条件while
,则可以直接使用它而无需将其包装bool()
回答 2
伊格纳西奥·巴斯克斯(Ignacio Vazquez-Abrams)是正确的。但要详细说明,re.match()
将返回None
,其结果为False
,或者返回一个匹配对象,该对象将始终True
如他所说。仅当您需要有关与正则表达式匹配的部分的信息时,才需要签出匹配对象的内容。
回答 3
一种方法是仅针对返回值进行测试。因为您得到<_sre.SRE_Match object at ...>
它意味着它将评估为true。当正则表达式不匹配时,您将返回无值,其结果为false。
import re
if re.search("c", "abcdef"):
print "hi"
产生hi
为输出。
回答 4
这是我的方法:
import re
# Compile
p = re.compile(r'hi')
# Match and print
print bool(p.match("abcdefghijkl"))
回答 5
您可以使用re.match()
或re.search()
。Python提供了两种基于正则表达式的原始操作:re.match()
仅在字符串的开头re.search()
检查匹配项,而在字符串中的任意位置检查匹配项(这是Perl的默认设置)。参考这个
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。