如何解决转换列表,无需替换模式
我有一个这样的列表:
>>> 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']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。