【发布时间】:2019-12-21 09:03:18
【问题描述】:
我正在尝试在字符串中查找 IP 模式或任何类似模式。例如:
Text_1 = "您好,此 ip 有效:123.22.33.22,但是!" #expect 123.22.33.22
Text_2 = "这可能是第二个有效 ip: 323.123.22.33.22 ,但是!" #expect 323.123.22.33.22
Text_3 = "第三个模式是:01.002.33.222,但是!" #expect 01.002.33.222
Text_4 = "第四个模式是:332.332.222,但是!" #expect 332.332.222
在所有情况下,我都需要提取所有以点分隔的数字,然后评估它们是否可能有效。
我查看了this question 和this question,但都有一些问题!
这是我发现的,但不能完美地工作,因为它无法捕获超过 4 位的字符串:
import re
re.search(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', s).group()
【问题讨论】:
-
这很令人困惑,因为其中大多数不是有效的 IP 地址。
-
如果您只是在寻找点状数字序列,
\d+(\.\d+)*怎么样? -
是的,我正在尝试提取这些数字以便稍后评估它们是否是有效的 IP。因为上述链接中的任何解决方案都没有提供验证 IP 的有效解决方案,这就是我尝试首先提取数字的原因
-
r"(\d+).(\d+).(\d+).(\d+)"? -
你确定你还需要
323.123.22.33.22吗?
标签: python