私はPythonを使い始めています。私はすべてのテキスト「のVLAN XXXX」を検索したいファイル内で2つの異なる単語を見つける
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"を返したいと思っています。もし私が "untagged"という単語を見つけたら、それは2行下です。
私のコードは次のようになります:
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
この上で私を教えてください、私は近いと思う:)
あなたのregexは "name"行と "untagged"行の先頭にある空白を正しく扱う必要があります。それらのアスタリスクはあなたのデータファイルにありますか?もしそうなら、正規表現はそれらにも対処する必要があります。 –
ありがとうございました - アスタリスクは太字になっているはずでした...私の考えでは、 "vlan xxx"の後に2行をチェックしたり、 "vlan xxxx"から "untagged"に行のブロックを抽出しました。それは理にかなっていますか?お返事ありがとうございます –