2016-10-04 81 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 可用于端口号