我对编程还很陌生,所以我要为自己的知识不足提前道歉。你知道吗
在尝试推断手机的目录号及其MAC地址的过程中,我在下面提供了一些示例数据,并将其放入LLDPLarge变量中:
LLDPLarge = '''* Slot-1 Far-B65-2ND.1 # show lldp neighbours detailed | include (System Name: "regDN |: 08:00:0F)
Port ID : 08:00:0F:36:46:62
- System Name: "regDN 7335,MITEL 5340 IP"
Port ID : 08:00:0F:3E:56:1C
- System Name: "regDN 7383,MITEL 5340 IP"
Port ID : 08:00:0F:3C:12:B2
- System Name: "regDN 7270,MITEL 5340 IP"
Port ID : 08:00:0F:28:9C:22
- System Name: "regDN 7320,MITEL 5340 IP"'''
我想出的代码如下:
vartest1 = "(?<=System Name: \"regDN )(.*)(?=,)"
vartest2 = "([0-9A-F]{2}[:-]){5}([0-9A-F]{2})"
vartest3 = vartest1 + "|" + vartest2
for match in re.finditer(vartest3, LLDPLarge):
sGroup = match.group()
print('{}'.format(sGroup))
这是它创建的输出的一个示例,非常接近我想要的:
08:00:0F:36:46:62
7335
08:00:0F:3E:56:1C
7383
08:00:0F:3C:12:B2
7270
08:00:0F:28:9C:22
7320
我想做的是将其输出到字典中,如下所示:
'08:00:0F:36:46:62' : '7335'
'08:00:0F:3E:56:1C' : '7383'
'08:00:0F:3C:12:B2' : '7270'
'08:00:0F:28:9C:22' : '7320'
在这个时候,我不知道该怎么做,或者我的代码是否是最优雅的?你知道吗
非常感谢您的帮助。你知道吗
非常感谢。你知道吗
下面是一个简单的方法:
itertools解决方案比这更优雅,但这需要更少的python专业知识来理解。你知道吗
检查是否填写了
group(1)
或group(2)
。如果group(1)
有一个值,那么regexp与电话号码匹配,否则它与MAC地址匹配。然后可以将其用作字典的键或值。你知道吗相关问题 更多 >
编程相关推荐