Python中文
首页
教程
问答
标签
搜索
登录
注册
Python:用文件中的多个字符串替换多个字符串
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在建一个网络认证实验室。 有13个设备的一些配置,但是由于我没有完全相同的设备,我必须对配置进行一些更改。在</p> <p>我试过做一个Python脚本,但它与我需要的不完全匹配。在</p> <p>我有一个文件,其中包含要在表格中进行的更改:</p> <p>找到这个,换成这个 现在我要更改的配置主要是在面内,所以它看起来像这样(我删除了一些配置以使其更小):</p> <pre><code>interface Serial0 description Connected to R1 frame-relay route 102 interface Serial1 201 frame-relay route 103 interface Serial2 301 frame-relay route 104 interface Serial4 401 frame-relay route 105 interface Serial5 501 frame-relay route 113 interface Serial3 311 ! interface Serial1 description Connected to R2 frame-relay route 201 interface Serial0 102 frame-relay route 203 interface Serial2 302 frame-relay route 204 interface Serial4 402 frame-relay route 205 interface Serial5 502 frame-relay route 213 interface Serial3 312 ! </code></pre> <p/> <p>我想替换的地方</p> ^{pr2}$ <p>或者像这样:</p> <pre><code>interface Serial0/0 ! interface Serial0/0.1 point-to-point ! interface Serial0/1 ! </code></pre> <p>我想替换的地方</p> <pre><code>Serial0/0,Serial0/2/0 Serial0/1,Serial0/1/0 </code></pre> <p>现在我用这个方法一行一行地做:</p> <pre><code>def replace_all(text, dic): for i, j in dic.iteritems(): text = re.sub("\\b"+i+"\\b", j, text) </code></pre> <p>我的问题是Serial0或Serial0/0在第一次匹配时被更改为Serial1/0,但是它随后被Serial1匹配,所以我得到Serial1/1/0。 我尝试过使用boundry(\b)和^和$,但似乎不起作用;还有一种情况是,Serial1可以,但Serial1/0不可以,但Serial1.200可以。在</p> <p>所以它应该完全匹配我想找到的,或者我想找到的,加上一个点和一些数字,比如Serial0/1.200</p> <p>有人知道怎么做,能给我指出正确的方向吗?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>一种效率低下但有效的方法可能是手动执行while循环(比如在代码中执行for循环),根据单词列表检查position变量前面的字符串,然后在命中时进行替换,并将替换单词的长度添加到position变量中。有点难看但简单有效。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何根据与其他行比较的列表筛选序列?
7 回答
如何根据与前一行的差异对行进行分组?
3 回答
如何根据与另一个图像匹配的图像特征来变换图像?
1 回答
如何根据与另一个模型的关系在模板视图中查询另一个Django模型
9 回答
如何根据与已知参考轨迹的距离过滤出位置数据?
3 回答
如何根据与现有值比较的下限和上限创建新的pandas系列
9 回答
如何根据与输入字符串共享的特征从数据集中获取值
4 回答
如何根据与长生不老药的多对多关系排序?
4 回答
如何根据世代显示,x'攻击'和y'防御'
3 回答
如何根据两个CSV文件中的公共信息用Python合并两个CSV文件?
6 回答
如何根据两个CSV文件的相似性比较它们的行?
9 回答
如何根据两个不同列的值在一列中填充NaN
10 回答
如何根据两个不同列的日期获取交叉联接表的唯一记录?
5 回答
如何根据两个不同列表中的相应值创建if语句?
7 回答
如何根据两个不同栏目的分数组成三个不同的班级,有人能指导我吗,请参考我的代码
3 回答
如何根据两个不同的字符串检查变量?9行examp
6 回答
如何根据两个值对词典进行分组?
2 回答
如何根据两个列表获得自定义元组的计数
7 回答
如何根据两个变量的条件打印特定输出
9 回答
如何根据两个变量重新采样以均匀地派生类?
7 回答