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']