arraylistに保存されているIPリストとIPを照合したいのですが、この形式です
65.232.211.[001-175]
例えば。68.232.211.133
一致する必要があります一致し
68.232.211.199
ない
このシナリオでは定期的に表現したいのですが、どうなるかわかりません。試しましたが、正しい答えが得られませんでした。助けてください。
arraylistに保存されているIPリストとIPを照合したいのですが、この形式です
65.232.211.[001-175]
例えば。68.232.211.133
一致する必要があります一致し
68.232.211.199
ない
このシナリオでは定期的に表現したいのですが、どうなるかわかりません。試しましたが、正しい答えが得られませんでした。助けてください。
次のようなものを使用できます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.211
され133
ます。
上記により、IP の最初の部分を文字列として一致させることができ、IP の最後のセクションを取得して数値に変更し、数学演算子を使用して範囲チェックを実行できます。
私の意見では、(私の意見では) 保守が容易であるため、2 番目のアプローチを優先する必要があります。