正则表达式的力量-1

不管是什么工作,只要这个工作涉及到EXCEL等批量内容,我觉得学习一下正则表达式就是好的,它可以帮助你减轻一些批量工作。

让我们先感受一下正则表达式的魅力:

xkcd正则漫画

比如批量提速,我们排序出来应该是:
端口表

发现全是同一台,而且全是4M,实际上如果是登进设备修改配置的话,从配置上来看无非是

1
2
3
4
5
6
7
8
9
Interface adsl 0/12

Deactive 13

Active 13 profile-index 46

Quit

Interface ad......

这种内容几乎相同的,实际上我们可以从以下配置发现我们想要的信息都在端口里,我们会想只需要从下面的配置编程获取端口信息再组成。

但是NO!我们不需要编程!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
0-0-12-13

0-0-10-12

0-0-1-2

0-0-9-27

0-0-15-8

0-0-13-12

0-0-11-1

0-0-13-1

0-0-12-17

0-0-6-13

0-0-14-5

0-0-2-13

0-0-15-2

0-0-0-27

0-0-9-0

0-0-2-26

0-0-14-27

……

我们只需几步替换即可,不怕改不了,只怕想不到。

我们采取常用的editplus文本编辑器进行正则内容的替换(在这里提一下,editplus正则不够完善,无法替换"非"的内容)。

闲话少说,使用editplus新建一个文本,将上面的内容贴到文本中。按ctrl+h进行替换。注意勾选正则表达式,这里为了简单理解,我展开了更多选项,方便大家查看。
editplus正则替换

  1. 查找: ^0-0- 替换以空白

  2. 查找:-([0-9]+) 替换以:
    \ndeactivate \1activate \1 profile-index 46quit\ndeactivate \1activate \1 template-index 46\nquit

  3. 查找:^[0-9]+$ 替换以:
    interface adsl 0/\0interface vdsl 0/\0

结果:
脚本

适当修改,复制粘贴到telnet终端上
telnet输入后

看了以上神奇的结果,大致应该能想到正则表达式主要是为了查找是某些特征的字符串,方便我们进行定位、替换等(就像漫画中查找一个邮件地址)。初步解释一下替换的内容。

使用搜索:必应百度