def ipv6_check(addr): ''' Returns True if the IPv6 address (and optional subnet) are valid, otherwise returns False. ''' ip6_regex = ( r'(^(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}$)|' r'(\A([0-9a-f]{1,4}:){1,1}(:[0-9a-f]{1,4}){1,6}\Z)|' r'(\A([0-9a-f]{1,4}:){1,2}(:[0-9a-f]{1,4}){1,5}\Z)|' r'(\A([0-9a-f]{1,4}:){1,3}(:[0-9a-f]{1,4}){1,4}\Z)|' r'(\A([0-9a-f]{1,4}:){1,4}(:[0-9a-f]{1,4}){1,3}\Z)|' r'(\A([0-9a-f]{1,4}:){1,5}(:[0-9a-f]{1,4}){1,2}\Z)|' r'(\A([0-9a-f]{1,4}:){1,6}(:[0-9a-f]{1,4}){1,1}\Z)|' r'(\A(([0-9a-f]{1,4}:){1,7}|:):\Z)|(\A:(:[0-9a-f]{1,4}){1,7}\Z)|' r'(\A((([0-9a-f]{1,4}:){6})(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})\Z)|' r'(\A(([0-9a-f]{1,4}:){5}[0-9a-f]{1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})\Z)|' r'(\A([0-9a-f]{1,4}:){5}:[0-9a-f]{1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\Z)|' r'(\A([0-9a-f]{1,4}:){1,1}(:[0-9a-f]{1,4}){1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\Z)|' r'(\A([0-9a-f]{1,4}:){1,2}(:[0-9a-f]{1,4}){1,3}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\Z)|' r'(\A([0-9a-f]{1,4}:){1,3}(:[0-9a-f]{1,4}){1,2}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\Z)|' r'(\A([0-9a-f]{1,4}:){1,4}(:[0-9a-f]{1,4}){1,1}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\Z)|' r'(\A(([0-9a-f]{1,4}:){1,5}|:):(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\Z)|' r'(\A:(:[0-9a-f]{1,4}){1,5}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\Z)') return bool(re.match(ip6_regex, addr,flags=re.IGNORECASE))
#测试用例 print ipv6_check("2001:0DB8:0000:0000:0000:0000:1428:57ab") print ipv6_check("2001:0DB8:0000:0000:0000::1428:57ab") print ipv6_check("2001:0DB8:0:0:0:0:1428:57ab") print ipv6_check("2001:0DB8:0::0:1428:57ab") print ipv6_check("2001:0DB8::1428:57ab") print ipv6_check("2001:0DB8::1428:57ab") print ipv6_check("2001:0DB8:0000:0000:1428::57ab") print ipv6_check("2031:0000:1F1F:0000:0000:0100:11A0:ADDF")
相关推荐
在这个名为"Python IPv6.zip"的压缩包中,包含了关于Python在IPv6环境下的应用和实践的相关资料,让我们一起深入探讨这些知识点。 首先,我们来看"简介与Python基础模块"部分。这部分可能涵盖Python的基础语法、...
Python正则表达式是Python编程语言中的一个强大工具,它用于处理字符串,执行模式匹配和文本提取。在Python中,正则表达式主要用于处理文本数据,例如从日志文件中提取特定信息,验证用户输入,或者从网页内容中抓取...
python requests re 正则 爬虫 精简 万能,理论上可以下载任何网页的图片,可以试试看,简单易懂
Python 通过正则表达式快速获取电影的下载地址 Python源码Python 通过正则表达式快速获取电影的下载地址 Python源码Python 通过正则表达式快速获取电影的下载地址 Python源码Python 通过正则表达式快速获取电影的...
Python字正则表达式案例
Python正则表达式,也称为Regular Expression,在编程领域中是一种强大的文本处理工具,它能用于查找、替换或者提取符合特定模式的字符串。Python内置了`re`模块来支持正则表达式操作,使得在Python中使用正则表达式...
标题“江苏省经纬度范围正则校验表达式”涉及到的是地理信息系统(GIS)与编程结合的一个实际应用。在GIS中,经纬度是用来精确表示地理位置的重要坐标系统,而正则表达式则是编程语言中用于模式匹配和字符串处理的一...
这是一个关于python正则的常用方法的py文件,内含re.match,sub,search,findall,compile等方法。使用python3.6
在Python编程语言中,正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作。本节将深入探讨`re.compile()`函数及其在创建正则表达式对象中的应用。`re.compile()`是Python标准库`re`模块中的一员,它...
python-正则表达式知识汇总
首先是正则表示的验证,先画出NFA的图,在进行NFA转DFA之后,形成闭包,然后将输入的正则表达式进行验证。
Python中的正则表达式是一种强大的文本处理工具,可以用来搜索、替换那些符合某个模式(即规则)的文本。特别是在处理网络爬虫、数据清洗和文本分析等方面,正则表达式的应用非常广泛。但是,有时候我们需要匹配的不...
Python之正则表达式基础知识
python的正则表达式资源包
一个描述全部python正则方法,正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。 ...
在"正则指引_panoi9_python_正则指引_正则_"这个主题下,我们将深入探讨Python中的正则表达式使用方法和技巧。 1. **导入re模块** Python中,正则表达式的操作集中在`re`模块,首先要通过`import re`引入该模块。 ...
【Python】使用python+正则表达式替换vue项目里中文
学习笔记:Python爬虫正则表达式.doc
在Python开发中,校验手机号是常见的需求,尤其是针对中国大陆的手机号格式。通过正则表达式可以快速验证手机号的合法性。中国大陆的手机号通常以1开头,第二位为3至9之间的数字,总长度为11位。本文提供了一个示例...
在Python编程中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能用于匹配、查找、替换等操作。本篇文章将详细讲解如何使用Python的正则表达式库`re`来筛选信用卡号。 首先,我们需要理解信用卡号...