![](/img/trans.png)
[英]Python: Find and remove a string starting and ending with a specific substring in 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.