【发布时间】:2022-01-20 14:54:00
【问题描述】:
我不是 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** ,
它表明这是真的,所以我猜 find 功能并没有像我认为的那样帮助我。
所以我的问题是,如何在 id 的索引之后搜索我的特定子字符串?
我知道这很难理解,但我希望你们中的一些人能明白我的意思
供参考,数据如下所示
.<resource>
name=
ip=
.</resource>
.<resource>
name2=
ip2=
</resource>
.<resource>
name=
ip2=
.</resource>
【问题讨论】:
-
你试过使用
str.find的start参数吗? -
请添加一个更完整的字符串示例,以便可以测试代码?此外,当您说“ID”时,您的意思是“名称”还是“IP”? “ip”/“name”和“ip2”/“name2”有区别吗?