我在下面有这个字符串,我需要从该字符串中获取各个接口的特定配置,例如,我需要能够进行解析以获取它。
interface Loopback0
ip address 1.1.1.1/32
no shutdown
isis enable 2222
isis passive
或能够获得
interface Management0
no sflow enable
ip address 1.1.1.2/31
no shutdown
isis enable 2222
isis passive
接口下的行数可以变化。
字符串是:
[hostname router\r\n!\r\ninterface Loopback0\r\n ip address 1.1.1.1/32\r\n no shutdown\r\n isis enable 2222\r\n isis passive\r\n!\r\nvrf definition MGMT\r\n rd 200:200\r\n!\r\n!\r\nvrf definition VRF_DDOS\r\n rd 2222:100\r\n description VRF_DDOS\r\n!\r\n!\r\n interface ethernet1/1\r\n no sflow enable\r\n ip address 1.1.1.2/31\r\n no shutdown\r\n isis enable 2222\r\n isis passive\r\n!\r\nvrf definition MGMT\r\n rd 200:200\r\n!\r\n!\r\nvrf definition VRF_DDOS\r\n rd 2222:100\r\n description VRF_DDOS\r\n!\r\n!\r\n ]
答案 0 :(得分:0)
结帐https://pythex.org/and了解如何使用RegEx
如果在示例文本中输入字符串并使用(\ d。\ d。\ d。\ d / \ d \ d)作为模式,它将收集每个IP地址。
import re
ip_address = re.findall(r'(\d.\d.\d.\d/\d\d)', string)
print(ip_address)
>>> 1.1.1.1/32, 1.1.1.2/31
或者,如果输出始终相同,则可以在'\'处分割字符串,并获取每个项目的索引。
示例:
feedback = "[hostname router\r\n!\r\ninterface Loopback0\r\n ip address 1.1.1.1/32\r\n no shutdown\r\n isis " \
"enable 2222\r\n isis passive\r\n!\r\nvrf definition MGMT\r\n rd 200:200\r\n!\r\n!\r\nvrf definition" \
" VRF_DDOS\r\n rd 2222:100\r\n description VRF_DDOS\r\n!\r\n!\r\n interface ethernet1/1\r\n no sflow " \
"enable\r\n ip address 1.1.1.2/31\r\n no shutdown\r\n isis enable 2222\r\n isis passive\r\n!\r\nvrf " \
"definition MGMT\r\n rd 200:200\r\n!\r\n!\r\nvrf definition VRF_DDOS\r\n rd 2222:100\r\n description " \
"VRF_DDOS\r\n!\r\n!\r\n ]".replace('\r\n','').split(' ')
print(feedback[2:6])
output >>> ['Loopback0', 'ip', 'address', '1.1.1.1/32']