Python 正则表达式匹配 IPv6 地址

本文介绍如何使用 Python 正则表达式匹配 IPv6 地址,并提供示例代码。

import re

def is_ipv6(address):
    '判断是否为IPv6地址'
    pattern = r'^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$'
    return bool(re.match(pattern, address))

该代码使用 re.match() 方法匹配 IPv6 地址,其中 pattern 为正则表达式,用于匹配 IPv6 地址的格式。

使用方法:

print(is_ipv6('2001:0db8:85a3:0000:0000:8a2e:0370:7334'))  # True
print(is_ipv6('192.168.1.1'))  # False

代码解释:

  • r'^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$':这是一个正则表达式,匹配 IPv6 地址的格式。
    • ^:匹配字符串开头。
    • [0-9a-fA-F]{1,4}:匹配 1 到 4 个十六进制字符。
    • ::匹配冒号。
    • {7}:匹配前面 7 个子表达式。
    • [0-9a-fA-F]{1,4}$:匹配 1 到 4 个十六进制字符,并匹配字符串结尾。
  • re.match(pattern, address):使用正则表达式匹配字符串,如果匹配成功,返回匹配对象,否则返回 None
  • bool(re.match(pattern, address)):如果匹配对象存在,返回 True,否则返回 False

通过该代码,我们可以轻松地判断一个字符串是否为 IPv6 地址。

Python 正则表达式匹配 IPv6 地址

原文地址: https://www.cveoy.top/t/topic/oOAq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录