这是我想做的事情:

我有一长串:

s = asdf23rlkasdfidsiwanttocutthisoutsadlkljasdfhvaildufhblkajsdhf


我想剪切出子字符串:iwanttocutthisout

我将遍历循环,每次迭代时s的值都会改变。每次迭代唯一不变的是要删除的子字符串的开头和结尾:iwant和thisout。

给定这些参数后,如何切出子字符串?

谢谢你的帮助!

最佳答案

您可以分别在iwant的出现索引(+len(iwant)排除iwant)和thisout的出现索引之间进行切片,如下所示:

>>> s = "asdf23rlkasdfidsiwanttocutthisoutsadlkljasdfhvaildufhblkajsdhf"
>>> s[s.index("iwant")+len("iwant"):s.index("thisout")]
'tocut'


图解地:

"asdf23rlkasdfids(iwanttocut)thisoutsadlkljasdfhvaildufhblkajsdhf"
                 ^          ^
                 |          |
            index("iwant")  |
                           index("thisout")


请注意,这两个索引之间的切片(从开始算起)如何得到iwanttocut。添加len("iwant")将导致:

"asdf23rlkasdfidsiwant(tocut)thisoutsadlkljasdfhvaildufhblkajsdhf"
                      ^     ^
                 /----|     |
     index("iwant")         |
                           index("thisout")

09-06 02:23