如何在字符串中搜索子字符串,但从某个索引开始

How to search for a substring in a string, but from a certain index onward

我不是 python 方面的专家,由于它与工作相关,我可能需要更改一些变量和信息。

所以我有一个来自 API 请求的长字符串,我在其中寻找用户的信息,为了确保我只有用户信息,我将他们的 ID 与 .find( ID)显示 ID 在字符串中的索引(用户信息的中间)。在那之后我想要的是上升

string and search for the tag that starts the information 
`**<resource>** and down to the tag that end the information ****</resource>**.` 

**id_position = string.find(id)**
**upper = string[:id_position].rfind("<resource>")** to go in reverse order up the string and find the first match , and works fine

but when i use **lower = string[id_position].find("</resource>")**

,而不是正常地从 id 位置向下搜索直到找到第一个匹配项,它实际上搜索整个原始字符串,就像从第一个位置搜索 string[0] 以后。

当我打印时

**string[:id_position] + string[id_position:] == string** ,

它表明这是真的,所以我猜查找功能并没有像我认为的那样帮助我。

所以我的问题是,我如何在 id 索引之后搜索我的特定子字符串?

我知道这很难理解,但我希望你们中的一些人能明白我的意思

供参考,数据是这样的

.<resource>
   name=
   ip=
.</resource>

.<resource>
   name2=
   ip2=
</resource>

.<resource>
   name=
   ip2=
.</resource>

您是否尝试过使用 find() 的可选参数 startend

id_position = string.find(id)
upper = string.find("</resource>", id_position) + len("</resource>")
lower = string.rfind("<resource>", 0, id_position)

print(repr(string[lower:upper]))
> '<resource>\n   name2=\n   ip2=\n</resource>'