2016-03-30 20 views
0

- サンプルは以下になります(スプリット?):私はそれからIPアドレスを引くではなく、最後のオクテットたい文字列から文字列を引き出し、私は文字列を持っている

g0/1     192.168.1.1  YES NVRAM up     up 

。私は192.168.1を引っ張りたいそれを後で使用できるようにします。

私は分割を使用する必要があると思いますが、これを達成する方法についてはわかりません。

output = ' g0/1     192.168.1.1  YES NVRAM up     up' 
ouput = ouput.split('192.168.1.',) 

答えて

6

単にsplit()を使用してください。

>>> output.split()[1].rsplit(".", 1)[0] 
'192.168.1' 
3

Regular Expressionsを使用できます。

import re 

input_string = "g0/1     192.168.1.1  YES NVRAM up     up" 
output = re.search('\d{1,3}\.\d{1,3}\.\d{1,3}\.', input_string) 

EDIT:match()以来search()match()から変更は、文字列の先頭に見えます。

また、複数の文字列に対してこれを行う場合は、findall()関数を使用して、正規表現のすべての一致するグループのリストを返すことができます。

> import re 

> input_string = "g0/1     192.168.1.1  YES NVRAM up     up" 
> outputs = re.search('\d{1,3}\.\d{1,3}\.\d{1,3}\.', input_string) 
> print(outputs) 
['192.168.1.'] 
+2

正規表現はあまりにも重すぎてこの作業のハンマーではないことを謙虚に示唆しています。 – Vatine

+0

真。私はRegExesを使う必要がないときでも、その罠に陥ったようだ。 –

関連する問題