只是在寻找一些确认,但是看起来正则表达式的索引/位置编号不遵循其余Python所使用的相同规则。
例子:
pattern=re.compile('<HTML>')
pattern.search("<HTML>")
输出:
<_sre.SRE_Match object; span=(0, 6), match='<HTML>'>
为什么是“ span =(0,6)”?
在python中,该字符串"<HTML>"
只有6个字符的长度,因此在尝试执行以下操作时将返回索引错误:
"<HTML>"[6]
File "<stdin>", line 1, in <module>
IndexError: string index out of range
因此,我可以肯定的答案是,匹配对象的跨度值与python数据结构的索引值本质上是不同的。对于第一个字符,匹配对象的范围值从0开始(与所有python数据结构一样),最后一个字符始终为endpos-1。
如果有人能证实我的假设并可能解释为什么存在这种差异,我将不胜感激。
好吧,Python中的一个切片(跨度)是开放式的。因此"<HTML>and much more"[0:6]
实际上返回了"<HTML>"
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句