z danego String:Jak mogę sprawdzić, czy String jest adresem IP w Groovy?
String someIp = // some String
Jak mogę sprawdzić, czy someIp jest poprawnym formacie IP?
z danego String:Jak mogę sprawdzić, czy String jest adresem IP w Groovy?
String someIp = // some String
Jak mogę sprawdzić, czy someIp jest poprawnym formacie IP?
Można użyć InetAddressValidator klasę sprawdzić i zweryfikować pogodę ciąg jest ważny ip czy nie.
import org.codehaus.groovy.grails.validation.routines.InetAddressValidator
...
String someIp = // some String
if(InetAddressValidator.getInstance().isValidInet4Address(someIp)){
println "Valid Ip"
} else {
println "Invalid Ip"
}
...
Spróbuj tego ..,.
Regexes zrobi. Są proste i bardziej złożone. Prosty jeden jest ten regex:
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
Używaj go tak:
boolean isIP = someIP.maches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");
Ale to będzie pasować do 999.999.999.999, a także, co nie jest prawidłowy adres IP. Istnieje ogromna regex dostępny na 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]?)
Ten zajmie zadania poprawnie. Jeśli używasz tego, nie zapomnij uciec każdy \
z innym \
.
Jeśli nie jesteś fanem ogromnych regexes, można użyć tego kodu:
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;
}
}
obiektowego sposób:
String myIp ="192.168.43.32"
myIp.isIp();
Wiadomo, że trzeba dodać do BootStrap.groovy:
String.metaClass.isIp={
if(org.codehaus.groovy.grails.validation.routines.InetAddressValidator.getInstance().isValidInet4Address(delegate)){
return true;
} else {
return false;
}
}
Jest przełożonym odpowiedź, a on wyraźnie wie regex w java lepszego niż ja, idź z tym. Jestem całkiem nowy w świecie REGEX i jeszcze go nie użyłem w JAVA. – CamelopardalisRex
Bardzo dobrze. Ponadto w Groovy możesz użyć ciągu '/ regex /', w związku z czym nie potrzebujesz escapes, i użyj operatora '== ~', aby sprawdzić dopasowanie regex – Will