在字符串中删除第4个句点之后的所

时间:2018-04-28 04:37:06

标签: python string python-2.7 tcpdump

我正在尝试在python 2.7中操纵 tcpdump 的输出。我要做的是删除 IP 地址的端口部分

例如,如果输入字符串是

192.168.0.50.XXXX

我如何在第4个期后删除所有内容,以便输出

192.168.0.50

我已经考虑过使用字符串的长度做一些事情,唯一的事情是端口长度可以是我的例子中的1-5位数字(0-9999)。

我能想到的唯一一件事就是用#周期做一些事情,因为普通IP 只包含 3 和带有端口附件有 4

4 个答案:

答案 0 :(得分:3)

使用rsplit()获取最干净或最简单的路线:

s = "192.168.0.50.XXXX"
s = s.rsplit('.',1)[0]

<强>输出

192.168.0.50

rsplit()

  

从右侧断开给定的字符串后返回字符串列表   一边是指定的分隔符。

答案 1 :(得分:2)

试试这个

print('.'.join("192.168.0.50.XXXX".split('.')[:-1])) #or [:4], depending on what you want. To just remove the port, the -1 should work.

答案 2 :(得分:2)

使用句点作为分隔符将字符串拆分为组。取前四组并再次将它们放在一起,使用与分隔符相同的时间段:

ip = "192.168.0.50.XXXX"
".".join(ip.split(".")[:4])
#'192.168.0.50'

答案 3 :(得分:0)

我使用拆分加入功能执行此操作。

这是一步一步的过程:

ip="192.168.0.50.XXXX"

拆分字符串,并使用定义的分隔符添加数据到字符串数组。

sp=ip.split(".")
#['192', '168', '0', '50', 'XXXX']

选择除最后

之外的数组中的所有内容
sp=sp[:-1]
#['192', '168', '0', '50']

然后使用加入功能

加入这些元素
".".join(sp)
#'192.168.0.50'