进口re 从itertools导入islice dnlist=[] maclist=[]
以open('bulkdn.txt','r')作为行: 对于行中的行: 如果行中有'@ttml': dn=re.findall(r'\d{10}',行) dnlist.append(dn) 如果svc:1'在线: mac=re.findall(r'mac:[a-fA-F0-9]{2}[:][a-fA-AF0-9]{2}[:][a-fA-F0-9]{2}[:][a-fA-F0-9]{2}[:][a-fA-F0-9]{2}[:][a-fA F0-9]{2}',行) maclist.append(mac)
i=0 #next
for dn,mac in zip(dnlist,maclist):
print('{} {}{}'.format(i,dn,mac))
i+=1
输入文件如下
用户名 描述
你知道吗- svc:1 sap:滞后50:1776.2000mac:00:17:7c:75:99:75sid:5421 你知道吗
你知道吗svc:1 sap:滞后50:2680.2000mac:00:17:7c:6d:d6:2bsid:4099 你知道吗
你知道吗svc:1 sap:滞后50:2805.2000mac:00:17:7c:80:e2:fbsid:1796 你知道吗
你知道吗svc:1 sap:滞后50:2813.2000mac:e4:6f:13:c0:13:9asid:2420 你知道吗
你知道吗svc:1 sap:滞后50:1715.3615mac:10:62:eb:66:24:besid:6612 你知道吗
你知道吗svc:1 sap:滞后50:62.3602mac:00:17:7c:83:51:24sid:902 你知道吗
你知道吗svc:1 sap:滞后50:65.3605mac:00:17:7c:7c:fa:f9sid:1200 你知道吗
你知道吗svc:1 sap:滞后50:1714.3614mac:78:32:1b:99:a0:f9sid:1178 你知道吗
你知道吗svc:1 sap:滞后50:2585.2000mac:00:17:7c:7c:24:42sid:7710 0d 00:00:01 oE本地不适用 0200200003@ttml svc:1 sap:滞后50:1775.2000mac:00:17:7c:78:74:56sid:7151 0d 01:08:06 oE本地114.143.122.39 0200200006@ttml svc:1 sap:滞后50:2851.3739mac:00:17:7c:77:ab:26sid:2664 0d 07:26:23 oE本地49.248.206.250 01:4A:83:6A:03:4A:83:6A 0200200008@ttml svc:1 sap:滞后50:79.3609mac:80:26:89:ca:62:8bsid:4849 0d 00:28:31 oE本地49.248.169.78 82:26:89:FF:FE:CA:62:8B 0200200015@ttml svc:1 sap:滞后50:73.3603mac:6c:72:20:49:8b:6esid:7559 0d 02:28:27 oE本地49.248.177.166 6E:72:20:FF:FE:49:8B:6E 0200200016@ttml svc:1 sap:滞后50:1720.3620mac:00:17:7c:7d:41:22sid:7539 0d 02:52:09 oE本地49.248.48.145
预期输出为 0200200015mac:6c:72:20:49:8b:6e 0200200008mac:80:26:89:ca:62:8b 0200200016mac:00:17:7c:7d:41:22
我忽略了这样一个事实,即您的代码的格式与您期望的不一样,因为我认为您要问的问题是mac地址与dn不匹配
基本上你是匹配mac地址和dns,但是根据你定义的regex有14个mac和5个dns
我会用这样的多行正则表达式同时匹配dn和mac。我没有优化这个正则表达式,但是让它尽可能详细,所以它是不言自明的。基本上,虽然它匹配dn,但是各种静态文本位然后是mac形状的字符串。我们都找到了,这就是答案
结果:
相关问题 更多 >
编程相关推荐