: someIp geçerli bir IP formatında iseGroovy'de bir String'in IP olup olmadığını nasıl kontrol edebilirim? Verilen Telden
String someIp = // some String
nasıl kontrol edebilirim?
: someIp geçerli bir IP formatında iseGroovy'de bir String'in IP olup olmadığını nasıl kontrol edebilirim? Verilen Telden
String someIp = // some String
nasıl kontrol edebilirim?
: Eğer büyük regexes hayranı değilseniz
, bu kodu kullanabilirsiniz.
import org.codehaus.groovy.grails.validation.routines.InetAddressValidator
...
String someIp = // some String
if(InetAddressValidator.getInstance().isValidInet4Address(someIp)){
println "Valid Ip"
} else {
println "Invalid Ip"
}
...
Bunu deneyin ..,.
Düzenli ifadeler yapılacaktır. Basit olanlar ve daha karmaşık var.
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
böyle kullanın: Basit bir kimse bu regex olduğunu
boolean isIP = someIP.maches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");
Ama bu geçerli bir IP adresi değil de, hangi 999.999.999.999 eşleşir. Bu seferki doğru işin ilgilenir
(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 geçerli büyük bir düzenli ifade yoktur. Bunu kullanırsanız, başka bir \
ile her bir \
'dan kaçmayı unutmayın. Kontrol edip bir dize geçerli bir ip olup olmadığını hava doğrulamak için InetAddressValidator sınıfını kullanabilirsiniz
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;
}
}
bir nesne yönelimli yolu: Eğer BootStrap.groovy bunu eklemesi gerekir ki bilinen
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;
}
}
Bu üstün cevaptır ve o açıkça daha iyi java Regex bilir benden daha fazla, bununla git. REGEX dünyasında oldukça yeni ve henüz JAVA'da kullanmadım. – CamelopardalisRex
Çok iyi. Ayrıca, Groovy'de '/ regex /' dizesini kullanabilir, böylece kaçışa gerek duymazsınız ve normal ifadeyi kontrol etmek için '== ~ operatörünü kullanabilirsiniz. – Will