【发布时间】:2017-10-01 12:37:01
【问题描述】:
我从 Python 开始。
这是我要搜索的文本:
vlan 1111
name "VLAN1111"
untagged 2
tagged 10
no ip address
exit
vlan 2222
name "VLAN2222"
untagged 5
exit
vlan 3333
name "VLAN3333"
untagged 3
no ip address
exit
我想搜索所有文本“vlan xxxx”。如果我找到下面两行的“未标记”一词,我想返回“vlan xxxx”。
我的代码是这样的:
def find_vlan_untagged(file):
vlan = re.findall(r'vlan \d{4}\n\n untagged', file) # Finds VLAN
if len(untagged) < 1:
return 'No untagged VLAN'
else:
for each in vlan:
return vlan xxxx
请在这方面给我建议,我想我很接近了:)
【问题讨论】:
-
您的正则表达式需要正确处理“名称”行,以及“未标记”行开头的空格。这些星号在您的数据文件中吗?如果是这样,正则表达式也需要处理它们。
-
谢谢 - 星号应该把这个词放在粗体......在我看来,我会检查“vlan xxx”之后的两行或从“vlan xxxx”中提取一行到“未标记”。是否有意义 ?谢谢