使用正则表达式从字符串中提取 IP 地址
在应用程序中,我得到的字符串包含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吗?
提前致谢。