如何删除以某事开头和结尾的子字符串?

如何从以特定字符组合开头和结尾的字符串中删除子字符串,例如:

' bla <span class=""latex""> ... This can be different1 ... </span> blub <span class=""latex""> ... This can be different2 ... </span> bleb'

我想要的结果:

'bla blub bleb'

我尝试过这样的事情

string.replace('<span class=""latex"">' * '</span>', '')

但这不起作用。

有没有办法实现这个?


梵蒂冈之花
浏览 125回答 4
4回答

紫衣仙女

如果您想要某些部分而不是其他部分,则需要使用组。import res = ' cvbcx cvbcx <span class=""latex""> ... This can be different ... </span>vcvbcxbvxc'r = re.search( r'(<span class=""latex"">)(.+)(</span>)', s)print(s)# cvbcx cvbcx <span class=""latex""> ... This can be different ... </span>vcvbcxbvxc# print(r)# <re.Match object; span=(13, 73), match='<span class=""latex""> ... This can be different >print(r.group(1), r.group(3))# <span class=""latex""> </span>

慕工程0101907

这可以工作:>>> import re>>> x=re.sub(r"""<span class=""latex"">.+?</span>""", "", s)>>> x' bla&nbsp; blub&nbsp; bleb'正则表达式101编辑:在 OP 澄清后,将答案更改为使用惰性量词而不是捕获组。虽然这可行,但它不能扩展到更复杂的情况。如果是这种情况,正确的解决方案是解析字符串并提取所需的内容。

繁星点点滴滴

阅读re.sub 函数。一个简单的例子:import res = ' cvbcx cvbcx <span class=""latex""> ... This can be different ... </span>vcvbcxbvxc're.sub(r'<span class=""latex"">.+</span>', '<span class=""latex""></span>', s)>> ' cvbcx cvbcx <span class=""latex""></span>vcvbcxbvxc'

明月笑刀无情

如果要将数据保留在两者之间:&nbsp; &nbsp; >>> x'<span class=""latex""> ... This can be different ... </span>'>>>&nbsp;>>> d = re.sub('<(/)?span(\ class=\"\".*\"\")?(>)', '', x)>>>&nbsp;>>> d' ... This can be different ... '>>>&nbsp;如果要保留标签:>>> x'<span class=""latex""> ... This can be different ... </span>'>>>&nbsp;>>>&nbsp;>>>&nbsp;>>> new_data = 'abc 123 456'>>>&nbsp;>>>&nbsp;>>> d = re.sub('\">.*</','\">{}</'.format(new_data),x)>>>&nbsp;>>>&nbsp;>>> d'<span class=""latex"">abc 123 456</span>'>>>&nbsp;>>>&nbsp;>>>&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python