用python的正则表达式来判断输入的ip:port字符串格式是否正确
ip:互联网协议地址
不考虑实际应用,理论上ip的范围是0.0.0.0~255.255.255.255
port:端口号
本文中指的是逻辑端口,端口数的范围是0 到65535
可用代码:
# -*- coding: utf-8 -*-
import re
#正则表达式
ip_port_format = ('^(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.'
'(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.'
'(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.'
'(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\:'
'([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$')
#循环读取输入
flag = True
ipport = ''
while flag:
//python2.X
ipport = raw_input('Please enter the ip:port:')
//python3.X
//ipport = input('Please enter the ip:port:')
if re.match(ip_port_format, ipport):
flag = False
else:
print('Input format error')
测试结果(console):
Please enter the ip:port:1.1.1.1:
Input format error
Please enter the ip:port:172.0.1222.1:8080
Input format error
Please enter the ip:port:172.0.10.169:8080
Process finished with exit code 0
ip和port的正则表达式也可以单独使用啦
放上对我帮助很大的友情链接:正则表达式比较详细的教程