PowerShell Lookback 的正则表达式代码在 IP 寻址上无法匹配



我正在尝试使用 PowerShell 解析许多日志文件以获取 IP 地址,但在这些文件中,我还有许多误报,实际上是版本号。可能还有更多,但作为第一个开始,我想抓住所有没有前面Version=的 IP。

我已经尝试了我的正则表达式的许多不同的变体,但没有真正的成功,并且在 regex101.com 中四处砍伐也没有给我带来任何成果。

(?<!Version=)(?<Address>((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))

理想情况下,它应该是这样的:

  • 不匹配版本=10.0.0.1

  • 匹配 10.0.0.1

  • 匹配 IPAddress=10.0.0.1
  • 匹配 IP=10.0.0.1

等。

添加单词边界 ( b (:

(?<!Version=)b(?<Address> ... )b

这可以防止匹配在 IP 地址启动,否则会发生匹配。如果没有单词边界,方括号中的区域将是匹配的:Version=1[0.0.0.1]

最新更新