1 # -*- coding: utf-8 -*- 2 """ 3 @File:test06_判断ip地址是否合法.py 4 @E-mail:364942727@qq.com 5 @Time:2020-01-08 14:06 6 @Author:Nobita 7 @Version:1.0 8 @Desciption:判断一个字符串是否是合法IP地址 9 """ 10 11 import re 12 13 ''' 14 题目:判断一个字符串是否是合法IP地址。 15 ''' 16 17 18 class Solution: 19 # write code here. 20 def judge_ip_address_one(self, ip_str): 21 '''方法一:正则匹配的方法''' 22 compile_ip = re.compile('^((25[0-5]|2[0-4]d|[01]?dd?).){3}(25[0-5]|2[0-4]d|[01]?dd?)$') 23 if compile_ip.match(ip_str): 24 return True 25 else: 26 return False 27 28 def judge_ip_address_two(self, ip_str): 29 '''方法二:字符串的方法''' 30 if '.' not in ip_str: 31 return False 32 elif ip_str.count('.') != 3: 33 return False 34 else: 35 flag = True 36 ip_list = ip_str.split('.') 37 for i in ip_list: 38 try: 39 ip_num = int(i) 40 if ip_num >= 0 and ip_num <= 255: 41 pass 42 else: 43 flag = False 44 except: 45 flag = False 46 return flag 47 48 49 if __name__ == '__main__': 50 ip_list = ['', '172.31.137.251', '100.10.0.1000', '1.1.1.1', '12.23.13', 'aa.12.1.2', '12345678', '289043jdhjkbh'] 51 for ip in ip_list: 52 # if Solution().judge_ip_address_one(ip): # 正则匹配的方法 53 if Solution().judge_ip_address_two(ip): # 字符串的方法 54 print('{}是合法的ip地址!'.format(ip)) 55 else: 56 print('{}是不合法的ip地址!'.format(ip))