有以下文本,大多数情况下都是第一段文本,偶尔会有第二段,相比第一个多了一个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? 谢谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.