正则表达式:看不懂结尾



你能帮我理解为什么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末尾的额外空白将阻止$匹配,因此无法找到匹配

最新更新