不使用ipv4address和socket或任何其他内置模块,Ipv4地址的正则表达式是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (15)

我正在尝试一种最简单的方法来查找有效IP地址的正则表达式,而不使用内置类似socket或ipv4address或任何其他内置函数。我已经尝试了几个正则表达式,但它与有效的主机IP不匹配

>>> x = 'hello 10.10.10.10  20.20.20.20 baby 2000.20000.200000.2000'
>>> y = re.findall(r'[0-255]+\.[0-255]+\.[0-255]+\.[0-255]+',x)
>>> y
['10.10.10.10', '20.20.20.20', '2000.20000.200000.2000']
提问于
用户回答回答于

你有一个正确的IPV4地址正则表达式,如果你想找到多个匹配你findall(),但请注意我的正则表达式没有起始(^)和结束($)符号。这些符号表示如果文本以给定的正则表达式开头和结尾,则它们仅匹配。

import re
IPV4_REGEX = "(?:(?:25[0-5]|2[0-4][0-9]|(?:1[0-9]|[1-9])?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|(?:1[0-9]|[1-9])?[0-9])"
x = 'hello 10.10.10.10  20.20.20.20 baby 2000.20000.200000.2000'
result = re.findall(IPV4_REGEX, x)
print(result)

扫码关注云+社区

领取腾讯云代金券