正则表达式匹配IP地址

正则表达式匹配IP地址

#A类 网络位最高0
#B类 网络位最高10
#C类 网络位最高110
#D类 网络位最高1110

A类 0 0000001.00000000.00000000.00000001   1.0.0.1
    0 1111111.11111111.11111111.11111110   127.255.255.254

B类 10 000000.00000000.00000000.00000001   128.0.0.1
    10 111111.11111111.11111111.11111110   191.254.255.254


C类 110 00000.00000000.00000000.00000001    192.0.0.1
    110 11111.11111111.11111111.11111110    233.255.255.254


D类 1110 0000.00000000.00000000.00000001    224.0.0.1
    1110 1111.11111111.11111111.11111110    239.255.255.254

得出四段限制为(1-239).(0-255).(0-255).(1-254)

(1-239)
#1-9 10-99 100-239
#三位数 100-239 1\d{2} 1开头后面两位都随便 2[0-3]\d
#二位数 10-99 [1-9]\d
#一位数 1-9 [1-9]

x="^(1\d{2}|2[0-3]\d|[1-9]\d|[1-9])\."

(0-255){2}
#三位数 1\d{2} 2[0-4]\d 25[0-5]
#两位数 10-99 [1-9]\d
#一位数 [1-9]

y="((1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.){2}"

(1-254)

z="(1\d{2}|2[0-4]\d|25[0-4]|[1-9]\d|[1-9])$"
import re
l=["192.168.0.152","259.168.0.152","0.0.0.0","159.251.120.001"]
compile=re.compile(f'{x}{y}{z}')
print(f'{x}{y}{z}')
for i in l:
    r = compile.search(i)
    print(r)


^(1\d{2}|2[0-3]\d|[1-9]\d|[1-9])\.((1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.){2}(1\d{2}|2[0-4]\d|25[0-4]|[1-9]\d|[1-9])$
<re.Match object; span=(0, 13), match='192.168.0.152'>
None
None
None

你可能感兴趣的:(正则表达式,python,正则表达式,网络)