你能帮我理解为什么print(truth(prog.match(text, 0, 6)))
等于true吗?
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)))
如果您使用编译的正则表达式的match(text, startpos, endpos)
方法,它将表现得好像您已经通过了match(text[startpos:endpos])
(好吧,不完全是,但对于$
的目的,它是)。这意味着它会认为<HTML>
在输入的末尾(这是$
匹配的)。
但是,如果不是这种情况,text
末尾的额外空白将阻止$
匹配,因此无法找到匹配