比如下面的命令,由“!”分开,都是对access-list进行多项设置,虽然不是完全一样,但比较类似,所以这两个设定可以看作是一个类似pattern。
我想知道现在有什么技术可以做这种文本的类似pattern识别,请大家告诉我,我在这里等你们。^_^
!
ipv6 access-list NAME1
1 permit ipv6 host ffff::0000:0001 any
2 permit ipv6 host ffff::0000:0002 any
1111111 deny ipv6 any any
!
ipv6 access-list NAME2
14 permit ipv6 host ffff::0000:0006 any
15 permit ipv6 host ffff::0000:0007 any
!
interface INTERFACENAME1/0/1
description comment
no switchport
bandwidth 1000
ip address 11.17.1.12 255.255.255.1
ip broadcast-address 11.17.1.12
ip access-group 30 in
ip access-group 11 out
delay 10
speed 10
duplex full
no mdix auto
no cdp enable
!
interfaceINTERFACENAME2
no cdp enable
!
interface INTERFACENAME3
no cdp enable
!
interface INTERFACENAME4
no cdp enable
!
interface INTERFACENAME5
no cdp enable
!
interface INTERFACENAME6
no cdp enable
!
interface INTERFACENAME7
no cdp enable
!
interface INTERFACENAME8
no cdp enable
!
我可能也会选择使用正则表达式,把类似的文本用表达式去匹配。
1.我先把'no cdp enable'这种排除掉,这种是固定的,可以直接使用。
2.我把ipv6 access-list NAME1写成ipv6 access-list NAME[1-9],14 permit ipv6 host ffff::0000:0006 any写成
[1-9]{2} permit ipv6 host ffff::0000:000[1-9] any
然后把正则表达式去匹配文本
你好~!谢谢你的详细回复~!
如果这种内容非常多(100万行左右)的话,也是需要逐行写出对应的正则表达式吗?
文本和 Pattern 这两个东西一组合,程序员第一时间想到的就是 regex
你好!爱编程的大叔!谢谢你的讯息,根据你的讯息我再在网络上查询一下相关资料。^_^
你这是要做转换吗?
你好!没有要转换,只是想知道一个文本里面有多少类似的 patten。
你的命令只用"!"分隔吗?还有别的符号吗?如果可以多贴一点命令的代码
– Mad_Rabbit 6年前@Mad_Rabbit: 你好!只用"!"分隔,但是如果就算没有分隔符也可以识别pattern的话就更好了。
– 芽衣 6年前我修改了问题内容,更多的命令代码贴在上面了。