【问题标题】:Delete everything after 4th period in string删除字符串中第 4 个句点之后的所有内容
【发布时间】:2018-04-28 04:37:06
【问题描述】:

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

例如,如果 输入 字符串是

192.168.0.50.XXXX

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

192.168.0.50

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

我能想到的唯一一件事就是用# of period 作为普通IP只包含3和一个带有端口的IP > 附件有 4

【问题讨论】:

    标签: python string python-2.7 tcpdump


    【解决方案1】:

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

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

    输出

    192.168.0.50
    

    rsplit()

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

    【讨论】:

    • 这个解决方案对我有用,似乎是最简洁的解决方案。谢谢!
    【解决方案2】:

    我已经使用 splitjoin 功能来做到这一点。

    这是一步一步的过程:

    ip="192.168.0.50.XXXX"
    

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

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

    选择数组中的所有内容,除了最后一个

    sp=sp[:-1]
    #['192', '168', '0', '50']
    

    然后使用 join 函数加入这些元素:

    ".".join(sp)
    #'192.168.0.50'
    

    【讨论】:

      【解决方案3】:

      试试这个

      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.
      

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2022-08-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-19
          • 2013-07-21
          • 2019-02-11
          • 1970-01-01
          相关资源
          最近更新 更多