从字符串中提取同一匹配项的多个实例

2024-09-30 04:29:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要提取字符串中value模式匹配的所有实例的ssid。你知道吗

interface_info = '''Interface wlan1-cabin-2  
                ifindex 37  
                wdev 0x300000003  
                addr 06:53:1a:4e:07:02  
                ssid SSID3  
                type AP  
                channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz  
        Interface wlan1-cabin-1  
                ifindex 36  
                wdev 0x300000002  
                addr 06:53:1a:4e:07:01  
                ssid SSIDTEST2  
                type AP  
                channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz  
        Interface wlan1  
                ifindex 7
                wdev 0x300000001  
                addr 06:53:1a:4e:07:00  
                ssid SSID1 
                type AP  
                channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz  '''

ssid_regex = re.compile('ssid (\w+)')              
ssid_extract = re.search(ssid_regex,interface_info)

print (ssid_extract)

仅返回第一个匹配的值。我需要提取每个ssid匹配[SSID3,SSIDTEST2,SSID1}的值。 SSID3型

实际SSID3
应为[SSID3,SSIDTEST2,SSID1]


Tags: typechannelwidthinterfaceapaddrmhzssid
1条回答
网友
1楼 · 发布于 2024-09-30 04:29:31

哦!/usr/bin/env python文件

进口re 接口信息=“”
物理层3
wlan1-cabin-1接口
如果索引36
wdev 0x30000002
地址:06:53:1a:4e:07:01
ssid SSIDTEST3
类型AP
通道6(2437 MHz),宽度:20 MHz,中心1:2437 MHz
接口wlan1
指数7
wdev 0x30000001
地址:06:53:1a:4e:07:00
ssid SSIDTEST2
类型AP
通道6(2437 MHz),宽度:20 MHz,中心1:2437 MHz
物理层2
接口wlan0
如果索引6
wdev 0x20000001
地址02:ac:1a:4e:07:00
ssid SSID1
类型AP
通道149(5745 MHz),宽度:80 MHz,中心1:5775 MHz

'' 接口信息=回复sub(重新编译('^\s+',关于多行),'',接口信息) ssid\u正则表达式=重新编译('ssid(\w+)') ssid\u提取=关于芬德尔(ssid\u regex,interface\u info[接口_信息索引(“接口wlan1”):])

打印(ssid\u摘录) 打印(类型(ssid\u extract))

打印(str(接口信息))

相关问题 更多 >

    热门问题