【问题标题】:Regex to extract the ip address from URL [duplicate]正则表达式从 URL 中提取 IP 地址 [重复]
【发布时间】:2016-08-28 23:29:19
【问题描述】:

谁能指导我编写regularexp,我将在我的java代码中使用它来提取ip http://10.22.14.152/something/api

预期结果:10.22.14.152

【问题讨论】:

  • 这是一个 XY 问题。从 URL 获取主机的正确方法不是使用正则表达式,而是使用 new URI(string).getHost()

标签: java regex


【解决方案1】:

use the structure 的 URL 来时尚很简单的正则表达式:

 http://(.*?)/

【讨论】:

  • 可能想在http 之后放置一个可选的s?,并使尾部斜杠也可选。
【解决方案2】:

只是为了展示一种不同的方式来做到这一点,(尽管 sweaver2112 的答案要好得多)...

您知道格式将是 (http:)//(ipaddress)/(directory)/(directory)... 您可以围绕 / 拆分并抓取数组中的 3 个元素获取IP...

String url = "http://10.22.14.152/something/api";
String[] splitUp = url.split("/");
String ipAddress = splitUp[2];

【讨论】:

  • 为什么sweaver的回答会更好我其实更喜欢你的。 RegEx 是资源密集型的。通常情况下,字符串操作(例如拆分或子字符串)是一种更好的方法 - 如果您不需要 RegEx 的表达能力。
  • @BramVanroy RegEx 是资源密集型的,是的,但是对于这样一个小问题,他更容易阅读并且最终用户不会注意到底线。与使用 RegEx 相比,我认为我的解决方案更有帮助,因为您可以确切地看到正在发生的事情,但我认为在这种情况下,RegEx 实际上是更好的解决方案......当然这是一种意见:)
  • 我终于用java.net.URL提取了ip地址docs.oracle.com/javase/7/docs/api/java/net/URL.html
猜你喜欢
  • 2015-09-19
  • 2022-12-08
  • 1970-01-01
  • 2014-05-17
  • 2015-12-17
  • 1970-01-01
  • 2015-10-26
  • 2011-06-20
相关资源
最近更新 更多