我有一个类似于"dasdasdsafs[image : image name : image]vvfd gvdfvg dfvgd"
的字符串。在此字符串中,我想删除[image :
中的星号并在: image]
结束的部分。我试图使用以下代码 -
result = re.search('%s(.*)%s' % (start, end), st).group(1)
但它没有给我所需的结果。 帮我找到从字符串中删除子字符串的正确方法。
答案 0 :(得分:5)
您可以使用re.sub
:
>>> s='dasdasdsafs[image : image name : image]vvfd gvdfvg dfvgd'
>>> re.sub(r'\[image.+image\]','',s)
'dasdasdsafsvvfd gvdfvg dfvgd'
答案 1 :(得分:2)
你可能只需要转义方括号,因为它们是正则表达式中的特殊字符(即,start = r" \ [image:" and end = r&#34 ;: image \]&#34 ;)
答案 2 :(得分:2)
这将删除字符串中出现的所有内容
import re
s = "dasdasdsafs[image : image name : image]vvfd gvdfvg dfvgd"
s = re.sub(r'\[image :.*?: image\]', r'', s)
答案 3 :(得分:2)
显而易见的问题是,您不能只插入任意字符串,因为它将包含将改变重新查看方式的字符。相反,您想要转义开始和结束字符串。当然,你可以通过在这次输入正确的转义码来解决它们,但如果有一种简单的方法让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