正则表达式:无法理解endpos

时间:2016-10-04 15:05:56

标签: python python-3.x

你能帮助我理解为什么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)))

1 个答案:

答案 0 :(得分:1)

如果您使用已编译正则表达式的match(text, startpos, endpos)方法,它将表现为您已通过match(text[startpos:endpos])(嗯,not exactly,但出于$的目的}, 它是)。这意味着它会认为<HTML>位于输入的末尾($匹配)。

但是,如果不是这种情况,text末尾的额外空格会阻止$匹配,因此找不到匹配项。