使用Python正则表达式如何获得True/ False返回?所有Python返回的是:
<_sre.SRE_Match object at ...>
Run Code Online (Sandbox Code Playgroud)
Joh*_*ooy 124
如果你真的需要True或者False只是使用bool
>>> bool(re.search("hi", "abcdefghijkl"))
True
>>> bool(re.search("hi", "abcdefgijkl"))
False
Run Code Online (Sandbox Code Playgroud)
正如其他答案所指出的那样,如果您只是将它用作if或的条件while,您可以直接使用它而不需要包装bool()
Ign*_*ams 114
Match对象始终为true,None如果没有匹配则返回.只是测试真实性.
if re.match(...):
Run Code Online (Sandbox Code Playgroud)
这是我的方法:
import re
# Compile
p = re.compile(r'hi')
# Match and print
print bool(p.match("abcdefghijkl"))
Run Code Online (Sandbox Code Playgroud)
Ignacio Vazquez-Abrams是对的.但是要详细说明,re.match()将返回None评估False或匹配对象,这将始终True如他所说.只有当您需要有关与正则表达式匹配的部分的信息时,才需要检查匹配对象的内容.
一种方法是测试返回值.因为你得到<_sre.SRE_Match object at ...>它意味着这将评估为真.当正则表达式不匹配时,您将返回值None,其值为false.
import re
if re.search("c", "abcdef"):
print "hi"
Run Code Online (Sandbox Code Playgroud)
产生hi输出.