问题描述
我有一个这样的列表:
>>> 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']