2 回答

TA貢獻1934條經(jīng)驗 獲得超2個贊
我也是python初學者,我覺得這段代碼對你有幫助
101 bear-test eth-1(2-04) eth-2(2-07)
102 int-test eth-4(2-06) eth-7(2-05) eth-8(2-03) eth-9(2-01) gig-3(2-08) eth-3(4-02) eth-5(4-00) eth-6(4-01) gig-1(4-08) gig-2(4-10) poe-1(4-04) poe-2(4-05) poe-3(4-06) poe-4(4-07)
'''
# output of second command
r2 = '''
2 4 101 00:80:a3:bf:72:d4 5
2 10 101 00:e0:4b:52:56:56 7
2 10 100 02:00:00:64:00:00 7
2 10 102 02:00:00:66:00:00 6
2 0 100 94:10:3e:b9:4f:5c 2
Switch Port FID MAC-Address Aging
4 3 100 56:1a:5e:a2:4a:73 7
'''
import re
s1o = (next((x for x in s1.split() if 'eth-1(2-04)' in x), None))
print(s1o)
base_list=(r2.split())
base_str=",".join(base_list)
pattren=r"(\w{2}):(\w{2}):(\w{2}):(\w{2}):(\w{2}):(\w{2})"
all_mac=re.findall(pattren,base_str)
print(all_mac)
print('###########################################')
for i in all_mac:
result=re.sub(",",":",str(i))
print(result)

TA貢獻1817條經(jīng)驗 獲得超6個贊
對于第一個命令,您可以應用此模式 eth-1\((\d)-0(\d)
eth-1\(
=eth-1(
字面上匹配
(\d)
- 匹配數(shù)字并將其存儲在第一個捕獲組中
-0
--0
從字面上匹配,
(\d)
- 匹配數(shù)字并將其存儲在第二個捕獲組中
現(xiàn)在,您可以創(chuàng)建另一個正則表達式以應用于第二個命令: 2\s+4\s+\d+\s+([^\s]+)
2
- 從字面上匹配 2,這來自第一個正則表達式的第一個捕獲組
\s+
- 匹配一個或多個空格
4
- 從字面上匹配 4,這來自第一個正則表達式的第二個捕獲組
\s+
- 匹配一個或多個空格
\d+
- 匹配一位或多位數(shù)字
\s+
- 匹配一個或多個空格
([^\s]+)
- 匹配一個或多個除空格之外的字符并將其存儲在捕獲組中,這將捕獲您的 mac 地址
添加回答
舉報