4

我需要一个匹配 IP 子网的 C# 正则表达式,例如“127.65.231”,但不匹配子网上的 IP 地址,例如“127.65.231.111”。我为 IP 地址找到了这个正则表达式:

@"\b\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}\b"

并在想我可以删除检查最后一个八位字节的部分,如下所示:

@"\b\d{1,3}.\d{1,3}.\d{1,3}\b"

但这匹配 IP 地址和子网。有人能帮忙吗?

4

2 回答 2

1

您可以尝试使用前瞻。另外,请转义.字符——否则它会匹配任何字符:

@"\b\d{1,3}\.\d{1,3}\.\d{1,3}(?=\.\d{1,3})\b"

这将匹配任何字符串127.65.231,只要它后面跟着一个字符串,如.111.

于 2013-07-31T19:50:29.507 回答
0
@"^\d{1,3}\.\d{1,3}\.\d{1,3}$"

使用线锚。 在 Regex 的开头添加 ^,在末尾添加 $,以验证输入的开头和结尾。

这将匹配127.65.231但不匹配127.65.231.111

于 2013-07-31T19:52:35.090 回答