私はネットワークエンジニアであり、私の指先をプログラミングに浸しています。私はPythonを試してみることを勧められました。Pythonの正規表現を複数回マッチさせ、別々に結果を格納します。
私がやろうとしているのは、特定のデータを保存し、文字列を複数の行とregexpでマッチングすることです。 SourceData
に保存されたデータを取得しました。
SourceData = '
ip route 22.22.22.22 255.255.255.255 TenGigabitEthernet0/1/0 1.1.1.1
ip route 33.33.33.33 255.255.255.255 TenGigabitEthernet0/1/0 1.1.1.1
ip route 11.22.33.44 255.255.255.255 TenGigabitEthernet0/1/0 1.1.1.1
ip route 11.11.12.11 255.255.255.255 TenGigabitEthernet0/1/0 1.1.1.1
ip route 11.11.13.11 255.255.255.255 TenGigabitEthernet0/1/0 1.1.1.1
ip route 11.11.14.0 255.255.255.255 TenGigabitEthernet0/1/0 1.1.1.1
ip route 44.44.44.0 255.255.255.0 TenGigabitEthernet0/1/0 1.1.1.1'
SourceData
に格納されている行数は、常に不明です。無制限の行に対して0行(空)にすることができます。
ip1 = re.search('11\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}', SourceData)
if ip1:
ip1 = ip1.group()
を確認します:
>>> print ip1
11.22.33.44
は、私はこれは私が最初のように作ってみたものです11.
から始まるのIPv4アドレスを含むすべての行をマッチさせたいです
OK、うまくいくようです。私が説明するように、より一致するSourceData
をチェックしていきますか、学ぶこと
ip1 = 11.22.33.44
ip2 = 11.11.12.11
ip3 = 11.11.13.11
ip4 = 11.11.14.0
次へ:アイデアは、提供された例で、この場合の最終的な結果は4試合となり、全体SourceData
が一致したときにということです後でコード内で使用するために複数のマッチを保存するにはどうすればよいですか?たとえば、コードの後半で、特定の一致の値を使用したい場合は、一致番号4(11.11.14.0
)と言うことができます。
私はPythonと正規表現のためのいくつかのガイドラインを読みましたが、私はかなりそれを理解していないようです:)