Java Regex从URL提取ip地址
有谁能指导我编写regularexp,我将在java代码中使用它来从中提取ipJava Regex从URL提取ip地址,java,regex,Java,Regex,有谁能指导我编写regularexp,我将在java代码中使用它来从中提取ip http://10.22.14.152/something/api 预期结果:10.22.14.152 http://(.*?)/ 只是为了展示一种不同的方式来做到这一点,(尽管sweaver2112的答案要好得多) 您知道格式将是(http:)/(ipaddress)/(directory)/(directory)。。。您可以拆分/并获取数组中的3个元素以获取IP String url = "http://10
http://10.22.14.152/something/api
预期结果:10.22.14.152
http://(.*?)/
只是为了展示一种不同的方式来做到这一点,(尽管sweaver2112的答案要好得多) 您知道格式将是(http:)/(ipaddress)/(directory)/(directory)。。。您可以拆分
/
并获取数组中的3个元素以获取IP
String url = "http://10.22.14.152/something/api";
String[] splitUp = url.split("/");
String ipAddress = splitUp[2];
可能想在http
http
之后加一个可选的s?
,并使后面的斜杠也是可选的。为什么斯韦弗的答案会更好?我实际上更喜欢你的答案。正则表达式是资源密集型的。通常情况下,如果您不需要正则表达式的表现力,字符串操作(如拆分或子字符串)是一种更好的方法。@BramVanroy正则表达式是资源密集型的,是的,但对于这样一个小问题,它更容易阅读,并且最终用户不会注意到底线。我认为我的解决方案帮助更大,因为与使用正则表达式相比,您可以确切地看到发生了什么,但我认为在这种情况下,正则表达式实际上是更好的解决方案。。。当然,这是一种观点:)我最终使用java.net.URL来提取ip地址,这是一个XY问题。从URL获取主机的正确方法不是使用正则表达式,而是使用新URI(string).getHost()
。