Python 正则表达式匹配 IPv6 地址
Python 正则表达式匹配 IPv6 地址
以下是一个 Python 代码示例,用于匹配 IPv6 地址并返回 True 或 False:
import re
def is_ipv6(addr):
pattern = re.compile(r'^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$')
return True if pattern.match(addr) else False
该函数使用正则表达式来匹配 IPv6 地址。正则表达式的模式如下:
^:匹配字符串的开始位置。([0-9a-fA-F]{1,4}:){7}:匹配七段由 1 到 4 个十六进制数字和冒号组成的子串,如 '2001:0db8:85a3:0000:0000:8a2e:0370:7334'。[0-9a-fA-F]{1,4}:匹配一个由 1 到 4 个十六进制数字组成的子串,如 'fe80'。$:匹配字符串的结束位置。
如果给定的地址与此模式匹配,则返回 True,否则返回 False。
下面是一些示例:
print(is_ipv6('2001:0db8:85a3:0000:0000:8a2e:0370:7334')) # True
print(is_ipv6('2001:0db8:85a3:0:0:8a2e:0370:7334')) # True
print(is_ipv6('2001:0db8:85a3::8a2e:0370:7334')) # True
print(is_ipv6('fe80::1%lo0')) # True
print(is_ipv6('2001:0db8:85a3:0000:0000:8a2e:0370')) # False
print(is_ipv6('2001:0db8:85a3:0000:0000:8a2e:0370:73341')) # False
原文地址: https://www.cveoy.top/t/topic/oOAu 著作权归作者所有。请勿转载和采集!