Извлечь несколько строк одного и того же соответствия из строки - PullRequest
0 голосов
/ 28 декабря 2018

Мне нужно извлечь 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]

1 Ответ

0 голосов
/ 28 декабря 2018

! / Usr / bin / env python

import re interface_info = '' '
phy # 3
Интерфейс wlan1-cab-1
ifindex 36
wdev 0x300000002
адрес 06: 53: 1a: 4e: 07: 01
SSID SSIDTEST3
тип AP
канал 6 (2437 МГц), ширина: 20 МГц, центр1: 2437 МГц
Интерфейс wlan1
ifindex 7
wdev 0x300000001
адрес 06: 53: 1a: 4e: 07: 00
ssid SSIDTEST2
тип AP
канал 6 (2437 МГц), ширина: 20 МГц, центр1:2437 МГц
phy # 2
Интерфейс wlan0
ifindex 6
wdev 0x200000001
адрес 02: ac: 1a: 4e: 07: 00
ssid SSID1
тип AP
канал 149 (5745 МГц), ширина: 80 МГц, центр1: 5775 МГц

'' 'interface_info = re.sub (re.compile (' ^ \ s + ', re.MULTILINE),' ',interface_info) ssid_regex = re.compile ('ssid (\ w +)') ssid_extract = re.findall (ssid_regex, interface_info [interface_info.index ("Интерфейс wlan1"):])

печать (ssid_extract) печать (тип (ssid_extract))

print (str (interface_info))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...