只是在這方面尋找一些確認,但似乎正則表達式的索引/位置編號不遵循python其餘部分使用的相同規則。Python正則表達式索引號
實施例:
pattern=re.compile('<HTML>')
pattern.search("<HTML>")
輸出:
<_sre.SRE_Match object; span=(0, 6), match='<HTML>'>
爲什麼 「跨度=(0,6)」?
在Python中,字符串"<HTML>"
只有6字符長,因此將返回一個錯誤指標試圖做這樣的事情的時候:
"<HTML>"[6]
File "<stdin>", line 1, in <module>
IndexError: string index out of range
所以我相當肯定的答案是,這個跨度值對於匹配對象本質上不同於python數據結構的索引值。雖然匹配對象的跨度值從第一個字符的0開始(就像所有的python數據結構一樣),但最後一個字符總是endpos-1。
如果有人可以證實我的假設,也許可以解釋爲什麼這種差異存在,我將不勝感激。
我確定你不是*實際上*通過正則表達式搜索HTML,這只是一個完整的例子,對吧? – Tomalak
正確,這個例子適用於任何匹配的搜索模式。 –
您是否有特定的背景要使用這個跨度數字? – Goufalite