我正在尝试使用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]?))
理想情况下,它应该类似于:
不匹配版本= 1.0.0.0.1
匹配10.0.0.1
等
答案 0 :(得分:4)
添加单词边界(\b
):
(?<!Version=)\b(?<Address> ... )\b
这可以防止匹配在IP地址内内开头。没有单词边界,方括号中的区域将是一个匹配项:Version=1[0.0.0.1]