In einer Anwendung erhalte ich Strings mit IP-Adressen, aber diese Zeichenfolge hat kein genaues Format. Alles, was wir wissen ist, dass diese Zeichenfolgen eine IP-Adresse enthalten können.Extrahieren von IP-Adressen aus Strings mit Regex
hier ist ein Beispiel dafür, was die Zeichenfolge wie folgt aussehen kann:
- "XPSPort"
- "IP_10.29.167.187"
- "10.29.166.193"
würde ich gerne bekomme ich einen Java-Code, der die IP-Adresse des Strings extrahiert, wenn es einen gibt oder "" zurückgibt, wenn der String keine IP-Adresse enthält.
habe ich versucht, diesen Code, aber es funktioniert nicht:
String IPADDRESS_PATTERN =
"^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";
Pattern pattern = Pattern.compile(IPADDRESS_PATTERN);
Matcher matcher = pattern.matcher(ipString);
if (matcher.find()) {
return matcher.group();
}
else{
return "0.0.0.0";
}
Ich bin mir ziemlich sicher, dass der beste Weg, mit RegExp ist, dass zu erreichen, aber ich bin nicht sehr gut mit diesen so jemand kann mir helfen finde die gute RegExp?
Vielen Dank im Voraus.
möglich Duplikat [regex IP-Adresse von string] (http://stackoverflow.com/questions/8439633/regex-ip-address-from-string) – Richard
Danke Richard, das ist nicht genau ein Duplikat, weil in meinem c Das IP ist nicht immer ein volles Wort, aber es hat mir geholfen, die Antwort zu finden. – Padrus