2024-04-25 23:24:13 发布
网友
我想做的是:
我有一根长长的绳子:
s = asdf23rlkasdfidsiwanttocutthisoutsadlkljasdfhvaildufhblkajsdhf
我想去掉子串:iwanttocuthisout
我将遍历一个循环,每次迭代s的值都会改变。在每次迭代中唯一保持不变的是要删除的子字符串的开始和结束:iwant和thisout。
在给定这些参数的情况下,我如何剪切子字符串?
谢谢你的帮助!
你可以在iwant(+len(iwant))的发生指数和iwant之间分别做一个切片,如下所示:
iwant
+len(iwant)
>>> s = "asdf23rlkasdfidsiwanttocutthisoutsadlkljasdfhvaildufhblkajsdhf" >>> s[s.index("iwant")+len("iwant"):s.index("thisout")] 'tocut'
图解法:
"asdf23rlkasdfids(iwanttocut)thisoutsadlkljasdfhvaildufhblkajsdhf" ^ ^ | | index("iwant") | index("thisout")
注意这两个索引(开始包含)之间的切片将如何得到iwanttocut。添加len("iwant")将导致:
iwanttocut
len("iwant")
"asdf23rlkasdfidsiwant(tocut)thisoutsadlkljasdfhvaildufhblkajsdhf" ^ ^ /----| | index("iwant") | index("thisout")
使用re模块中的sub()函数,如下所示:
re
sub()
clean_s = re.sub(r'iwant\w+thisout','',s)
如果字符串中需要非单词字符,请用“.+”替换“.+”,如果开始标记和结束标记之间可能没有任何额外字符(即“iwantthisout”),请使用“*而不是“+”
你可以在
iwant
(+len(iwant)
)的发生指数和iwant
之间分别做一个切片,如下所示:图解法:
注意这两个索引(开始包含)之间的切片将如何得到
iwanttocut
。添加len("iwant")
将导致:使用
re
模块中的sub()
函数,如下所示:clean_s = re.sub(r'iwant\w+thisout','',s)
如果字符串中需要非单词字符,请用“.+”替换“.+”,如果开始标记和结束标记之间可能没有任何额外字符(即“iwantthisout”),请使用“*而不是“+”
相关问题 更多 >
编程相关推荐