【发布时间】:2018-09-13 02:16:59
【问题描述】:
将 Python 3 与 Regex 一起使用时,我得到了意想不到的结果。我想做这样的事情
firstpass = re.findall('\s+((10|192|172).\d{1,3}.\d{1,3}.\d{1,3}/(\d+)) ', 行)
它会在哪里查找空格,然后是从 10 或 192 或 172 开始的数字,然后是后面的任意 3 个八位字节(IPv4 地址)。
我了解分组,但我要么只得到前三个值中的一个。或者,如果我改变分组,我会得到 3 个返回(但仍然只有 1 个初始搜索值),我已经尝试了尽可能多的变化。 [10|192|172] 只是不起作用。当然是在 () 分组内。
我正在寻找两个返回字符串。 IP 和掩码。在我尝试扩大表达式以进行更复杂的搜索之前,它工作正常。
最终目标是在一个正则表达式中查找任何私有 IP 空间。
10.match.match.match
172.16-32.match.match
192.168.match.match
所以数据可能看起来像这样,我想拉 1 -3 但不是最后一行
B 10.50.13.0 /26 blah foo
O 192.169.5.0 /24 foo foo
B 172.18.0.0/16 etc etc
B 82.33.4.0/24 yak yak yak
【问题讨论】:
-
天啊,有史以来最伟大的网站!谢谢你,先生!我需要弄清楚单词的界限,但这确实是我需要的。
标签: regex python-3.x ip