Python 从字符串中删除变量号

Python 从字符串中删除变量号,python,Python,列表中有几个字符串: ['~/tmp/GROUP-G07T01/items/GROUP-G07T01-000021_item2.png','~/tmp/GROUP-G07T01/items/GROUP-G07T01-000021_item3.png','~/tmp/GROUP-G07T01/items/GROUP-G07T01-000021_item4.png' 我需要删除'item2',item3',item4',以便以后可以用另一个变量替换,该变量每次传入时都会更改:variable={ch

列表中有几个字符串:

['~/tmp/GROUP-G07T01/items/GROUP-G07T01-000021_item2.png','~/tmp/GROUP-G07T01/items/GROUP-G07T01-000021_item3.png','~/tmp/GROUP-G07T01/items/GROUP-G07T01-000021_item4.png'

我需要删除
'item2',item3',item4'
,以便以后可以用另一个变量替换,该变量每次传入时都会更改:
variable={changing item}

我尝试过类似于
string.replace(“范围(20)内I的item{I}.format(I)”)
re.sub
的方法,但我似乎无法让它工作-有什么建议吗


我希望输出
[~/tmp/GROUP-G07T01/items/GROUP-G07T01-000021{changing item1}.png
,~/tmp/GROUP-G07T01/items/GROUP-G07T01-000021{changing item2}.png
,~/tmp/GROUP-G07T01-000021/items/GROUP-G07T01-000021{changing item3}.png

您可以使用
子代码来替换字符串(
)这样:

代码

import re

lst = ['~/tmp/GROUP-G07T01/items/GROUP-G07T01-000021_item2.png', 'some/thing/0034_item5.png']
var = 'foo'

result = [re.sub(r'item\d+', var, x) for x in lst]
# ['~/tmp/GROUP-G07T01/items/GROUP-G07T01-000021_foo.png', 'some/thing/0034_foo.png']

尝试使用
re
regex模块。您需要使用有效的regex。您可以使用
[0-9]+
指定一个或多个字符0到9

fixed\u str=re.replace(“项目[0-9]+,”,输入\u str)
以下是有关如何格式化正则表达式的参考:


您也可以使用在线网站(如regex101.com)实时试验regex格式,以确保它能够提前工作。

将字符串列表和预期输出添加到您的问题中。我在示例中添加了更多字符串和预期输出。谢谢,我最初的re.sub尝试一定做得不正确。
import re

lst = ['~/tmp/GROUP-G07T01/items/GROUP-G07T01-000021_item2.png', 'some/thing/0034_item5.png']
var = 'foo'

result = [re.sub(r'item\d+', var, x) for x in lst]
# ['~/tmp/GROUP-G07T01/items/GROUP-G07T01-000021_foo.png', 'some/thing/0034_foo.png']