0

我想将 IP 与存储在 arraylist 中的 IP 列表进行匹配,但它是这种格式 65.232.211.[001-175]

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

我想要这种情况下的常规快递,但我不知道会怎样..我试过但没有得到正确的答案..请帮助我..

4

1 回答 1

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 的最后一部分,将其更改为数值并使用数学运算符执行范围检查。

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

于 2012-07-20T09:52:25.093 回答