📅  最后修改于: 2023-12-03 14:42:09.862000             🧑  作者: Mango
在各种网络应用程序中,IP地址是非常常见的。因此,编写正则表达式来验证IP地址是一个非常有用的技巧。在Python中,我们可以使用re模块来处理正则表达式。
IPv4地址通常是以四个十进制数字为基础,并且每个数字之间用一个点分隔符分隔。IPv6地址则是更长的数字和字符的组合,包含八组四位十六进制数,每组数之间用冒号分隔。
import re
def is_valid_ipv4_address(address):
"""
验证IPv4地址的函数
"""
pattern = re.compile(r'^((([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.){3}([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5]))$')
return pattern.match(address) is not None
该正则表达式使用了正则表达式元字符,如?
、[ ]
、|
和^
等。
其中,^
和$
元字符会在整个字符串中匹配开头和结尾。[01]?[0-9]?[0-9]
用于匹配以0-199之间的数字开头,2[0-4][0-9]
用于匹配200-249之间的数字开头,25[0-5]
用于匹配250-255之间的数字开头。
通过这种方式,可以验证IPv4地址是否合法。
import re
def is_valid_ipv6_address(address):
"""
验证IPv6地址的函数
"""
pattern = re.compile(r'^(([0-9A-Fa-f]{1,4}):){7}([0-9A-Fa-f]{1,4})$')
return pattern.match(address) is not None
该正则表达式使用了[0-9A-Fa-f]
字符集,用于匹配十六进制数字和字母。{1,4}
用于匹配1到4次字符,以保证IPv6的每个组别都具有1到4个十六进制数。
通过这种方式,可以验证IPv6地址是否合法。
通过使用正则表达式,Python程序员可以轻松验证IP地址的格式。以上给出的示例是最常见的格式,但是可以根据特定需求进行修改。