我有一个字符串 - 示例如下:
g0/1 192.168.1.1 YES NVRAM up up
我想从中提取IP地址,但不是最后一个八位字节。我想拉192.168.1。从而可以在以后使用。
我想我需要使用split,但我不确定如何实现这一点。
output = ' g0/1 192.168.1.1 YES NVRAM up up'
ouput = ouput.split('192.168.1.',)
答案 0 :(得分:6)
只需使用split()
。
>>> output.split()[1].rsplit(".", 1)[0]
'192.168.1'
答案 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)
编辑:从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.']