Python中匹配IP的正規表示式

2021-08-15 06:36:47 字數 1535 閱讀 1110

下面是ipv4的ip正則匹配表示式

1

importre2

#簡單的匹配給定的字串是否是ip位址,下面的例子它不是ipv4的位址,但是它滿足正規表示式

3if re.match(r"

^(?:[0-9]\.)[0-9]$

", "

272.168,1,1"):

4print

"ip vaild"5

else:6

print

"ip invaild"7

#精確的匹配給定的字串是否是ip位址

8if re.match(r"

^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

", "

223.168.1.1"):

9print

"ip vaild"10

else:11

print

"ip invaild"12

#簡單的從長文字中提取中提取ip位址

13 string_ip = "

is this 289.22.22.22 ip ?

14 result = re.findall(r"

\b(?:[0-9]\.)[0-9]\b

", string_ip)

15if

result:

16print

result

17else:18

print

"re cannot find ip"19

#精確提取ip

20 result = re.findall(r"

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

", string_ip):

21if

result:

22print

result

23else:24

print

"re cannot find ip

下面是ipv6的正則匹配表示式

1 string_ipv6="

1050:0:0:0:5:600:300c:326b"2

#匹配是否滿足ipv6格式要求,請注意例子裡大小寫不敏感

3if re.match(r"

^(?:[a-f0-9]:)[a-f0-9]$

", string_ipv6, re.i):

4print

"ipv6 vaild"5

else:6

print

"ipv6 invaild"7

#提取ipv6,例子裡大小寫不敏感

8 result = re.findall(r"(?"

, string_ipv6, re.i)9#

列印提取結果

10print result

python正則匹配ip位址

用正則匹配ip位址 可以將ip位址按區間分類 0 99 1 9 d 表示十位數有1個或無 100 199 1 d 200 249 2 0 5 d 250 255 25 0 5 前面三位ip都帶.讓他們擴張三次。最後一位ip不帶.再來一次 import re g se215.255.255.155 5...

正則匹配IP

分析 ip位址的長度為32位,分為4段,每段8位,用十進位制數字表示,每段數字範圍為0 255 2 8 段與段之間用英文句點 隔開。例如 某台計算機ip位址為10.11.44.100。ip位址的組成特點 250 255 200 249 0 199。分別考慮 這三種情況可以分開考慮,1.250 255...

正則匹配IP

分析 ip位址的長度為32位,分為4段,每段8位,用十進位制數字表示,每段數字範圍為0 255 2 8 段與段之間用英文句點 隔開。例如 某台計算機ip位址為10.11.44.100。ip位址的組成特點 250 255 200 249 0 199。分別考慮 這三種情況可以分開考慮,1.250 255...