有以下文本,大多数情况下都是第一段文本,偶尔会有第二段,相比第一个多了一个ip address x.x.x.x x.x.x.x
4500#sh run int vlan 3
Building configuration...
Current configuration : 122 bytes
!
interface Vlan3
ip address 192.168.234.17 255.255.255.240
no ip redirects
no ip proxy-arp
end
4500#sh run int vlan 4
Building configuration...
Current configuration : 192 bytes
!
interface Vlan4
ip address 192.168.23.65 255.255.255.192 secondary
ip address 192.168.4.1 255.255.255.0
ip access-group 100 in
no ip redirects
no ip unreachables
no ip proxy-arp
end
我用这段正则来匹配:
vlan_info = vlan_output.encode('ascii','ignore')
vlan_info_re = re.search(r"(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b) (\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b)",vlan_info)
gateway = vlan_info_re.group(1)
netmask = vlan_info_re.group(2)
如果仅是第一段文本的话是可以正常匹配的,但如果第二段也存在的话就只会匹配到第一个。 求大佬指导个 python 的思路,怎么把文本里面的 ip 和掩码全取出来,应该怎么写才比较 pythonic? 谢谢!