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)

TA貢獻1797條經驗 獲得超6個贊
我想出了這個正則表達式代碼,它對我有用而且很簡單。
import re
text = input("Input text: ")
pattern = re.findall(r'\d+\.\d+\.\d+\.\d+', text)
print(pattern)

TA貢獻1802條經驗 獲得超4個贊
您不需要正則表達式,:
在讀取該行時對字符使用 split 函數。然后您將得到一個包含兩個位置的數組,第一個僅包含 IP 地址,另一個包含端口。

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
添加回答
舉報