4 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
您所需要的只是第二場(chǎng)比賽:
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貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
我想出了這個(gè)正則表達(dá)式代碼,它對(duì)我有用而且很簡(jiǎn)單。
import re
text = input("Input text: ")
pattern = re.findall(r'\d+\.\d+\.\d+\.\d+', text)
print(pattern)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
您不需要正則表達(dá)式,:
在讀取該行時(shí)對(duì)字符使用 split 函數(shù)。然后您將得到一個(gè)包含兩個(gè)位置的數(shù)組,第一個(gè)僅包含 IP 地址,另一個(gè)包含端口。

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
嘗試這個(gè):
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
添加回答
舉報(bào)