:someIpは有効なIPフォーマットであれば文字列がGroovyのIPであるかどうかを確認する方法はありますか?与えられた文字列から
String someIp = // some String
どのように確認することができ、?
:someIpは有効なIPフォーマットであれば文字列がGroovyのIPであるかどうかを確認する方法はありますか?与えられた文字列から
String someIp = // some String
どのように確認することができ、?
あなたは天候文字列が有効なIPであるかどうかをチェックし、検証するInetAddressValidatorクラスを使用することができます。
import org.codehaus.groovy.grails.validation.routines.InetAddressValidator
...
String someIp = // some String
if(InetAddressValidator.getInstance().isValidInet4Address(someIp)){
println "Valid Ip"
} else {
println "Invalid Ip"
}
...
これを試してください。
Regexesが行います。単純なものと複雑なものがあります。
\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と一致します。この1つは正しく仕事の世話をする
(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]?)
:regular-expressions.infoで利用できる巨大な正規表現があります。これを使用する場合は、\
を別の\
で逃すことを忘れないでください。
あなたは巨大な正規表現のファンではない場合、あなたはこのコードを使用することができます:
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;
}
}
アンオブジェクト指向の方法:あなたがBootStrap.groovyにこれを追加しなければならない、ことが知られて
String myIp ="192.168.43.32"
myIp.isIp();
:
String.metaClass.isIp={
if(org.codehaus.groovy.grails.validation.routines.InetAddressValidator.getInstance().isValidInet4Address(delegate)){
return true;
} else {
return false;
}
}
これは優れた答えである、と彼は明らかに優れJavaでREGEXを知っています私がするよりも、これで行く。私はREGEXの世界ではかなり新しく、まだJAVAでそれを使用していません。 – CamelopardalisRex
非常に良い。また、Groovyでは '/ regex /'という文字列を使うことができるので、エスケープを必要とせず、 '==〜'演算子を使って正規表現のマッチをチェックすることができます – Will