题解 | #合法IP#
合法IP
https://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9
# !/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = 'tianyi'
__date__ = '2024/3/24 08:59 '
__file__ = 'HW_HJ90.py'
import sys
String = sys.stdin.readline().rstrip()
#判断是否符合Ipv4格式
def is_ipv4(ip):
ip_list = ip.split(".")
if len(ip_list) != 4:
return False
for i in ip_list:
if not i.isdigit():
return False
if int(i) < 0 or int(i) > 255:
return False
return True
#通过正则判断是否符合Ipv4格式
import re
def is_ipv4_re(ip):
return bool(re.match(r"^((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$", ip))
#解释正则表达式 ^((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$
# ^表示匹配字符串的开始,$表示匹配字符串的结束 (25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)表示匹配0-255的数字
# \.表示匹配. {3}表示匹配3次 |表示或 [1-9]\d表示匹配10-99的数字 \d表示匹配0-9的数字
if is_ipv4_re(String):
print("YES")
else:
print("NO")
Ipv4判断规则:是否被 . 切分为四段 是否都是数字 范围是否在0-225之间

