В приложении я получаю строки, содержащие IP-адреса, но эти строки не имеют точного формата. Все, что мы знаем, это то, что эти строки могут содержать IP-адрес.
здесь пример того, как может выглядеть строка:
- "XPSPort"
- "IP_10.29.167.187"
- "10.29.166.193"
Я хотел бы получить Java-код, который извлекает ip-адрес строки, если есть тот или кто возвращает "", если строка не содержит IP-адрес.
Я пробовал этот код, но он не работает:
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";
}
Я уверен, что использование RegExp - лучший способ добиться этого, но я не очень хорош в этом, так кто-нибудь может помочь мне найти хороший RegExp?
Спасибо заранее.