gpt4 book ai didi

regex - PowerShell正则表达式匹配IP不会继续且IP不会跟随

转载 作者:行者123 更新时间:2023-12-03 00:28:07 25 4
gpt4 key购买 nike

我试图在PowerShell中使用match运算符来查找未进行处理且未跟IP的IP地址。我的目标是仅捕获IP,而不捕获紧随子网掩码的IP。另外,我使用了在文本文件上获取内容的方法,然后使用每一行中的匹配项对其进行了处理。

到目前为止,这是我所得到的,但似乎并没有得到正确的结果:

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

示例数据:

10.0.0.1

字11.11.11.11

字12.12.12.12 255.255.255.0

15.15.15.15 255.255.255.0

预期匹配项:

10.0.0.1

11.11.11.11

最佳答案

正则表达式并不总是答案。

$IPs = $line.Split().Where({$_ -as [IPAddress]})
if ($IPs.Count -eq 1) {
$match = $IPs[0]
}

这是做什么的
$line代表当前行。

首先,将其拆分为一个数组( .Split()方法默认在空白处拆分),然后使用 .Where()过滤该数组,使其仅包含可以成功转换为 [IPAddress]的元素。这样就为您提供了该行中所有IP地址的数组。

之后,测试计数为1,因此只有在找到单个IP地址时才继续操作。

关于regex - PowerShell正则表达式匹配IP不会继续且IP不会跟随,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46305027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com