正则表达式匹配IP子网

时间:2013-07-31 19:47:42

标签: c# regex ip

我需要一个与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地址和子网匹配。任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

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

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

这将匹配127.65.231之类的任何字符串,只要它后跟一个字符串.111

答案 1 :(得分:0)

@"^\d{1,3}\.\d{1,3}\.\d{1,3}$"

在正则表达式的开头使用Line Anchors.添加^,在结尾使用$,以验证输入的开头和结尾。

这将匹配127.65.231但不匹配127.65.231.111