转换列表,无需替换模式

问题描述

我有一个这样的列表:

>>> from viewstate import ViewState
>>> base64_encoded_viewstate = '/wEPBQVhYmNkZQ9nAgE='
>>> vs = ViewState(base64_encoded_viewstate)
>>> vs.decode()
('abcde',(True,1))

每个值的最后三个数字是:IP总数/已使用IP /剩余IP。

我只想为每个网络获取“左侧IP”,以进行以下转换:

['10.131.0.240/29-NameoftheNetwork-8-8-0','10.121.0.248/29-NameoftheNetwork2-8-8-0','10.111.2.248/29-NameoftheNetwork3-8-7-1']

要这样:

['10.131.0.240/29-NameoftheNetwork-8-8-0','10.111.2.248/29-NameoftheNetwork3-8-7-1']

但是我没有找到一种方法来删除不需要的字符,并且我没有重复重复将其替换为“。=”或“ =”的模式。

解决方法

使用正则表达式。

例如:

import re

data = ['10.131.0.240/29-NameoftheNetwork-8-8-0','10.121.0.248/29-NameoftheNetwork2-8-8-0','10.111.2.248/29-NameoftheNetwork3-8-7-1']
data = [re.sub(r"(.*?)\-\d+\-\d+\-(\d+)",r"\1=\2",i) for i in data]
print(data)

输出:

['10.131.0.240/29-NameoftheNetwork=0','10.121.0.248/29-NameoftheNetwork2=0','10.111.2.248/29-NameoftheNetwork3=1']

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...