2016-10-04 158 views
-1

我有代理字符串:Python字符串沒有控制字符

proxy = '127.0.0.1:8080' 

我需要檢查是不是真正的字符串:

def is_proxy(proxy): 
    return not any(c.isalpha() for c in proxy) 

跳過字符串,如:

fail_proxy = 'This is proxy: 127.0.0.1:8080' 

但有些我有時間:

fail_proxy2 = '127.0.0.1:8080\r' 
is_proxy(fail_proxy2) is True 
True 

需要假

+0

字符類型黑名單是對此的錯誤方式。你只會輸入像'1.1.1'或'::::'輸入失敗。 – user2357112

+0

沒有它的工作 '。'。isalpha()== False –

+0

修復首先在數據中留下回車的問題。很可能,您正在從文件中讀取而沒有適當的行結束處理。 – chepner

回答

0

使用re模塊(正則表達式),請嘗試以下具體做法:

import re 

def is_proxy(proxy): 
    return re.fullmatch('^\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}:\d{1,5}$', proxy) is not None 

proxy1 = '127.0.0.1:8080' 
proxy2 = '127.0.0.1:8080\r' 

print(is_proxy(proxy1)) # True 
print(is_proxy(proxy2)) # False 

至於端口號(\d{1,5}):範圍1-65535 可用於端口號