使用Regex,如何提取顶级域名?

时间:2016-05-09 16:49:52

标签: java regex regex-lookarounds

我需要创建一个有效的正则表达式(最少量的回溯)来从某些日志中提取顶级域名。 URL可以是四种类型之一,因此我需要以下内容:

  1. " website.ca/somepage"
  2. 中提取 website.ca
  3. " https://subdomain.website.com/somepage"
  4. 中提取 website.com
  5. " 10.10.10.10/omeome"
  6. 中提取 10.10.10.10
  7. " myserver / somepage"
  8. 中提取 myserver

    我有一个半工作的解决方案,但它错过了一些。

    "[^"]*(\w+\.[a-z]+|\d+\.\d+\.\d+\.\d+)\/
    

    有人有什么建议吗?

1 个答案:

答案 0 :(得分:2)

试试这个正则表达式:

([a-zA-Z0-9]+\.[a-zA-Z]+|[0-9\.]+|[a-zA-Z0-9]+)(?=\/)

您可以在regex101.com进行测试:https://regex101.com/r/dK0bJ7/4

比赛1:website.com
第2场:10.10.10.10
第3场:myserver
第4场:website.ca