你能帮助我理解为什么print(truth(prog.match(text, 0, 6)))
等于真吗?
import re
from operator import truth
prog = re.compile(r'<HTML>$')
text = "<HTML> "
print("Last symbol: {}".format(len('<HTML>')-1))
print(truth(prog.match(text, 0, 6)))
print(truth(prog.match(text)))
答案 0 :(得分:1)
如果您使用已编译正则表达式的match(text, startpos, endpos)
方法,它将表现为您已通过match(text[startpos:endpos])
(嗯,not exactly,但出于$
的目的}, 它是)。这意味着它会认为<HTML>
位于输入的末尾($
匹配)。
但是,如果不是这种情况,text
末尾的额外空格会阻止$
匹配,因此找不到匹配项。