7

指定された文字列から:

String someIp = // some String

someIp が有効な IP 形式であるかどうかを確認するにはどうすればよいですか?

4

3 に答える 3

3

正規表現で十分です。単純なものとより複雑なものがあります。簡単なものは次の正規表現です。

\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

次のように使用します。

boolean isIP = someIP.maches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");

ただし、これは有効な IP アドレスではない 999.999.999.999 にも一致します。regular-expressions.infoで利用できる巨大な正規表現があります:

(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)

これは仕事を正しく処理します。\これを使用する場合は、 everyを別のでエスケープすることを忘れないでください\


膨大な正規表現が苦手な場合は、次のコードを使用できます。

public static boolean isIP(String str)
{
    try
    {
         String[] parts = str.split("\\.");
         if (parts.length != 4) return false;
         for (int i = 0; i < 4; ++i)
         {
             int p = Integer.parseInt(parts[i]);
             if (p > 255 || p < 0) return false;
         }
         return true;
    } catch (Exception e)
    {
        return false;
    }
}
于 2013-08-09T23:46:38.537 に答える
1

指向オブジェクトの方法:

String myIp ="192.168.43.32"
myIp.isIp();

これをBootStrap.groovyに追加する必要があることがわかっています。

String.metaClass.isIp={
   if(org.codehaus.groovy.grails.validation.routines.InetAddressValidator.getInstance().isValidInet4Address(delegate)){
    return true;
   } else {
    return false;
    } 


}
于 2014-05-28T08:48:38.763 に答える