1

我现在正在处理一些日志,但我遇到了一个我还无法解决的问题。

我想用正则表达式在我的日志文件的每一行中查找所有 ip。

我的问题是,我在这个日志中有一些独特的东西,称为 oid,大多数时候都是这样写的(数字是一个例子):oid: 1.3.2.4.5.3.2.4.2.2.

正如我在日志中看到的那样,数字是多种多样的,有时我会得到如下行:

oid: 1.3.2.4.512.3.2.434.2.2.

正如你所理解的,我的正则表达式找到了这个oid(它不是一个ip)并给我带来了很多问题。

有人可以给我一个正则表达式来解决这个问题吗?

** 我使用这个正则表达式来查找 ips:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

非常感谢。

4

1 回答 1

3

您可以使用一些环视方法来帮助确保.IP 周围没有其他问题:

(?<!\.)\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b(?!\.\d)

(?<!\.)确保 IP 之前没有点,并(?!\.\d)确保.IP 和数字之后没有。我添加了一个数字,因为我认为如果最后一个点是句末句号,你可以有一个 IP 后跟一个点。

单词边界 ( \b) 防止数字之间的匹配。

于 2014-04-05T20:48:21.793 回答