簡體   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