In un'applicazione, ottengo stringhe contenenti indirizzi IP ma queste stringhe non hanno un formato preciso. Tutto ciò che sappiamo è che queste stringhe possono contenere un indirizzo IP.Estrarre gli indirizzi IP dalle stringhe usando regex
Ecco un esempio di quello che la stringa può apparire come:
- "XPSPort"
- "IP_10.29.167.187"
- "10.29.166.193"
lo farei come ottenere un codice Java che estrae l'indirizzo IP della stringa se ce n'è uno o che restituisce "" se la stringa non contiene un indirizzo IP.
Ho provato questo codice, ma non funziona:
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";
}
Sono abbastanza sicuro che utilizza RegExp è il modo migliore per raggiungere questo obiettivo, ma io non sono molto bravo con questi in modo qualcuno può aiutarmi trova il buon RegExp?
Grazie in anticipo.
possibile duplicato di [indirizzo IP regex da stringa] (http://stackoverflow.com/questions/8439633/regex-ip-address-from-string) – Richard
Grazie Richard, questo non è esattamente un duplicato perché nella mia c come l'IP non è sempre una parola completa, ma mi ha aiutato a trovare la risposta. – Padrus