小程序开发定制【验证IP地址——正则表达式详解】

题目一:

小程序开发定制判断一个字符串是否符合ipv4地址,返回true或者false比如:输入“127.0.0.1”,返回true     输入"256.1.2.3",返回false

1、题目分析:

IPv4地址由4小程序开发定制个十进制数和3个点组成,小程序开发定制每个十进制数范围为0-255。比如,127.0.0.1。               

⚠️注意:小程序开发定制内的数不会以0开头。比如,地址127.10.111.01 是不合法的。

2、代码实现:

  1. import re
  2. def is_ipv4(str):
  3. pattern = "([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])(\.([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])){3}$"
  4. result = re.match(pattern, str)
  5. if result:
  6. return "true"
  7. else:
  8. return "false"
  9. print('127.0.0.1 :', is_ipv4('127.0.0.1'))
  10. print('256.1.2.3 :', is_ipv4('256.1.2.3'))
  11. print('127.0.0.01 :', is_ipv4('127.0.0.01'))

3、代码解析:

pattern = "([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])(\.([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])){3}$"分段匹配0-255的整数:
模式\d[1-9]\d[1-9]?\d1\d{2}2[0-4]\d25[0-5]
匹配字符串0-910-990-99100-199200-249250-255
本文涉及到的Python正则表达式模式如下表所示:
模式功能描述
$匹配字符串的末尾
[...]用来表示一组字符,单独列出:[amk] 匹配 ‘a’, ‘m’ 或 ‘k’
\d匹配任意数字,等价于 [0-9]
\.匹配 ‘.’
(re)对正则表达式分组并记住匹配的文本
a|b匹配a或b
{m, n}

匹配m到n次由前面的正则表达式定义的片段,贪婪方式

"ab{3,5}":表示一个字符串有一个a跟着3到5个b。

{n}

精确匹配n个表达式。

例如,o{2} 不能匹配 ‘Bob’ 中的 ‘o’,但是能匹配 ‘food’ 中的 ‘oo’

*

匹配0次或无限次。

"ab*":表示一个字符串有1个a后面跟着0个或若干个b。("a", "ab", "abbb",……)

+

匹配1次或无限次。

"ab+":表示一个字符串有1个a后面跟着至少1个b。("ab", "abb","abbb",……)

?

匹配0次或1次。

"ab?":表示一个字符串有1个a后面跟着0个或者1个b。("a", "ab")

re.match函数正则表达式-英文regular expression,缩写为 re 。函数语法:re.match(pattern, string)函数参数说明:pattern表示正则表达式模式,string表示要匹配的字符串。re.match从字符串的起始位置开始与模式进行匹配,若匹配成功,则返回一个匹配对象,若匹配失败,则返回None。

 

题目二:

编写一个函数来验证输入的字符串是否是有效的IPv4或IPv6地址。

1、题目分析:

IPv6地址由8组16进制数和7个(":")组成,每组表示16比特。
比如, 2001:0db8:85a3:0000:0000:8a2e:0370:7334是一个有效的地址。 

⚠️注意:字符串里没有空格或者其他特殊字符,每组16进制数为4位。

2、代码实现:

  1. import re
  2. def validIPAddress(IP):
  3. pattern_IPv4 = "([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])(\.([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])){3}$"
  4. pattern_IPv6 = '([\dA-Fa-f]{1,4}\:){7}[\dA-Fa-f]{1,4}$'
  5. if re.match(pattern_IPv4, IP):
  6. return 'IPv4'
  7. if re.match(pattern_IPv6, IP):
  8. return 'IPv6'
  9. return 'Neither'
  10. print(validIPAddress('172.16.254.1'))
  11. print(validIPAddress('256.256.256.256'))
  12. print(validIPAddress('1.1.1.01'))
  13. print(validIPAddress('2001:0db8:85a3:0:0:8A2E:0370:7334'))
  14. print(validIPAddress('2001:0db8:85a3:0:0:8A2E:0370:73340'))
  15. print(validIPAddress('2001:0db8::0:0:8A2E:0370:7334'))

3、代码解析:

pattern_IPv6 = '([\dA-Fa-f]{1,4}\:){7}[\dA-Fa-f]{1,4}$'每一位十六进制数:
模式[\dA-Fa-f]
匹配字符串(不区分大小写)

0 1 2 3 4 5 6 7 8 9 a b c d e f

0 1 2 3 4 5 6 7 8 9 A B C D E F

 

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发