列表ips 65.232.211的C#正则表达式。[001-175]

时间:2012-07-20 09:47:31

标签: regex ip-address

我希望将IP与存储在arraylist中的IP列表进行匹配,但它采用此格式 65.232.211.[001-175]

例如。 68.232.211.133必须匹配     68.232.211.199不匹配

我希望regualr表达这种情况,但我不知道它会是怎样的.. 我试过但没有得到正确的答案.. 请帮帮我..

1 个答案:

答案 0 :(得分:1)

您可以使用类似的内容:68\\.232\\.211\\.0*([1-9][0-9]?|1[0-6][0-9]|17[0-5])。最后一部分应与您所追求的数字范围相匹配(由Regex_For_Range提供)。

由于正则表达式中的句点字符是一个特殊字符(表示任何字符),因此需要对其进行转义。这是通过添加额外的斜杠来完成的,如下所示:\.。因为你正在使用C#(似乎)你需要转义斜杠,因为这是C#语言中的特殊字符。

您可以(或者甚至比上面的更好)使用以下正则表达式将IP拆分为2并执行您需要的验证:^([\d.]+?)\.(\d+)$。此正则表达式将产生2个组,因此以68.232.211.133为例,它将产生68.232.211133

以上将允许您将IP的初始部分作为字符串进行匹配,然后它将允许您获取IP的最后一部分,将其更改为数值并使用数学运算符执行范围检查。

在我看来,第二种方法应该受到青睐,因为它(在我看来)更容易维护。