Regex PowerShell Lookbehind的正则表达式代码在IP寻址上不匹配

Regex PowerShell Lookbehind的正则表达式代码在IP寻址上不匹配,regex,powershell,Regex,Powershell,我正在尝试使用PowerShell解析许多IP地址的日志文件,但在这些文件中,我也有一些误报,实际上是版本号。可能还有更多,但作为第一个开始,我想获取所有前面没有Version=的IP 我尝试了我的Regex的许多不同变体,但没有真正成功,在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]|

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

我尝试了我的Regex的许多不同变体,但没有真正成功,在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]?))
(?((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

  • 匹配IP地址=10.0.0.1
  • 匹配IP=10.0.0.1
等等。

添加单词边界(
\b
):

(?…)\b

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

请编辑问题并添加一些应匹配和不应匹配的数据示例。同时,删除任何
powershell版本
标记,因为当问题涉及特定版本时,应使用这些标记。
(?<!Version=)\b(?<Address> ... )\b