为了账号安全,请及时绑定邮箱和手机立即绑定

Python正则表达式从IP字符串中删除端口号

Python正则表达式从IP字符串中删除端口号

一只名叫tom的猫 2023-08-08 16:31:56
我有一个文本文件,其中包含文本行和带端口号的 IP,我想删除端口号并仅打印 IP。文本文件示例:77.55.211.77:8080无IP79.127.57.42:80期望的输出:77.55.211.7779.127.57.42我的代码:import rewith open('IPs.txt', 'r') as infile:     for ip in infile:        ip = ip.strip('\n')        IP_without_port_number = re.sub(r'((?::))(?:[0-9]+)$', "", ip)        re_for_IP = re.match(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$',ip)        print(IP_without_port_number)我不明白为什么当我打印到控制台“IP_without_port_number”时我看到所有行作为输出
查看完整描述

4 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

您所需要的只是第二场比赛:


import re


with open('IPs.txt', 'r') as infile:

    for ip in infile:

        re_for_IP = re.match(r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})', ip)

        if re_for_IP:

            print(re_for_IP[0])

输出:


77.55.211.77

79.127.57.42

单线:


import re


ips = []


with open('IPs.txt', 'r') as infile:

    ips = [ip[0] for ip in [re.match(r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})', ip) for ip in infile] if ip]


print(ips)


查看完整回答
反对 回复 2023-08-08
?
互换的青春

TA贡献1797条经验 获得超6个赞

我想出了这个正则表达式代码,它对我有用而且很简单。


import re

text = input("Input text: ")

pattern = re.findall(r'\d+\.\d+\.\d+\.\d+', text)

print(pattern)


查看完整回答
反对 回复 2023-08-08
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

您不需要正则表达式,:在读取该行时对字符使用 split 函数。然后您将得到一个包含两个位置的数组,第一个仅包含 IP 地址,另一个包含端口。



查看完整回答
反对 回复 2023-08-08
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

尝试这个:


import re

regex = '''^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)\.( 

            25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)\.( 

            25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)\.( 

            25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)$'''


with open('IP.txt', 'r') as infile: 

    for ip in infile:

        ip = ip.strip('\n')

        IP_without_port_number = re.sub(r':.*$', "", ip)

        re_for_IP = re.match(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$',ip)

        if(re.search(regex, IP_without_port_number)):  

            print(IP_without_port_number)

输出:


77.55.211.77

79.127.57.42


查看完整回答
反对 回复 2023-08-08
  • 4 回答
  • 0 关注
  • 448 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信