在應用程序中,我得到包含IP地址的字符串,但這些字符串沒有精確的格式。 我們只知道這些字符串可能包含IP地址。使用正則表達式從字符串中提取IP地址
這裏的字符串可以是什麼樣子的例子:
- 「XPSPort」
- 「IP_10.29.167.187」
- 「10.29.166.193」
我會就像獲取一個提取該字符串的ip地址的Java代碼(如果有的話),或者如果該字符串不包含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?
在此先感謝。
可能重複(HTTP:/ /stackoverflow.com/questions/8439633/regex-ip-address-from-string) – Richard 2013-04-08 09:01:11
謝謝理查德,這不完全是重複的,因爲在我的c因爲知識產權並不總是一個完整的詞,但它幫助我找到答案。 – Padrus 2013-04-08 09:17:10