写一个正则表达式判断一个字符串是否是ipv4地址。

写一个正则表达式判断一个字符串是否是ipv4地址。
规则:一个ip地址由4个数字组成,每个数字之间用“.”连接。由于是以字符串的格式进行分析,所以可通俗理解成对单个数字字符进行范围截取,分别讨论1、2、3位情况分别讨论进行组合。
第一位只能取0,1,2;
第二位可以取09;
第三位:在第一位取0,1时,取值范围是0
9;而第一位取2时,第二位取05;第三位在第二位取5时,可取范围为05


import re

a = "1.2.3.4"

if re.match(r"[0-2][.][0-9][.][0-9][.][0-9]",a) != None:
    if re.match(r"[01][.][0-9][.][0-9][.][0-9]",a) != None:
        print("yes")
    elif re.match(r"2[.][0-5][.][0-9][.][0-9]",a)!= None:
        if re.match(r"2[.]5[.][0-5][.][0-9]",a) != None:
            print("yes")
        elif re.match(r"2[.][0-4][.][0-9][.][0-9]",a)!=None:
            print("yes")
    else:
        print("no")
else:
    print("no")

^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$

\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9]).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\b