繁体   English   中英

在python中查找并删除以特定子字符串开头和结尾的字符串

[英]Find and remove a string starting and ending with a specific substring in python

我有一个类似于"dasdasdsafs[image : image name : image]vvfd gvdfvg dfvgd" 从这个字符串,我想删除[image :并结束于: image]星星部分。 我试图使用以下代码找到'子字符串' -

result = re.search('%s(.*)%s' % (start, end), st).group(1)

但它没有给我所需的结果。 帮我找到从字符串中删除子字符串的正确方法。

你可以使用re.sub

>>> s='dasdasdsafs[image : image name : image]vvfd gvdfvg dfvgd'
>>> re.sub(r'\[image.+image\]','',s)
'dasdasdsafsvvfd gvdfvg dfvgd'

您可能只需要转义方括号,因为它们是正则表达式中的特殊字符(即,start = r“\\ [image:”和end = r“:image \\]”)。

这将删除字符串中的所有匹配项

import re

s = "dasdasdsafs[image : image name : image]vvfd gvdfvg dfvgd"
s = re.sub(r'\[image :.*?: image\]', r'', s)

显而易见的问题是,您不能只插入任意字符串,因为它将包含将改变重新查看方式的字符。 相反,您想要转义开始和结束字符串。 当然,你可以通过这次键入正确的转义码来解决它们,但如果有一个简单的方法让python库为你做,并处理任何值,那就更好了。

import re
start = re.escape("[image : ")
end   = re.escape(" : image]")
st = "dasdasdsafs[image : image name : image]vvfd gvdfvg dfvgd"
result = re.search('%s(.*)%s' % (start, end), st).group(1)
print result

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM