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")
相关推荐
目录 1.简介与Python基础模块 2.Python实现NS_NA 3.Python实现RS_RA 4.Python实现Pingv6 30期抓包 Python IPv6实战
一个用来测试Python正则表达式的工具 图形界面,简单易用,适合学习Python的正则表达式,内附帮助文档及范例。
Python 通过正则表达式快速获取电影的下载地址 Python源码Python 通过正则表达式快速获取电影的下载地址 Python源码Python 通过正则表达式快速获取电影的下载地址 Python源码Python 通过正则表达式快速获取电影的...
今天小编就为大家分享一篇Python实现正则表达式匹配任意的邮箱方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Python字正则表达式案例
第11.25节 Python正则表达式编译re.compile及正则对象使用.rar
PYTHON,正则表达式 PYTHON,正则表达式 PYTHON,正则表达式 PYTHON,正则表达式
学习python正则表达式的应用,用python编写,其中包含部分pdf文章
这是一个关于python正则的常用方法的py文件,内含re.match,sub,search,findall,compile等方法。使用python3.6
首先是正则表示的验证,先画出NFA的图,在进行NFA转DFA之后,形成闭包,然后将输入的正则表达式进行验证。
本文实例讲述了python使用正则表达式提取网页URL的方法。分享给大家供大家参考。具体实现方法如下: import re import urllib url=//www.jb51.net s=urllib.urlopen(url).read() ss=s.replace( ,) urls=re.findall...
python之常用正则表达式.pdfpython之常用正则表达式.pdfpython之常用正则表达式.pdfpython之常用正则表达式.pdfpython之常用正则表达式.pdfpython之常用正则表达式.pdf
L2正则化python实现案例(附代码),含图形展示,对于正则化理解又直观帮助
一个描述全部python正则方法,正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。 ...
Python正则表达式操作指南 Python正则表达式操作指南 Python正则表达式操作指南
今天小编就为大家分享一篇python正则表达式匹配不包含某几个字符的字符串方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
本文实例讲述了Python使用正则表达式抓取网页图片的方法。分享给大家供大家参考,具体如下: #!/usr/bin/python import re import urllib #获取网页信息 def getHtml(url): page = urllib.urlopen(url) ...
学习笔记:Python爬虫正则表达式.doc
python正则表达式详细图 python正则表达式详细图 python正则表达式详细图
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程。