我需要创建一个有效的正则表达式(最少的回溯)来从某些日志中提取顶级域名。 URL 可以是四种类型之一,因此我需要以下内容:
- 在“website.ca/somepage”中提取website.ca
- 提取"https://subdomain.website.com/somepage "中的website.com
- 提取“10.10.10.10/somepage”中的10.10.10.10
- 在“myserver/somepage”中提取myserver
我有一个半工作的解决方案,但它遗漏了一些。
"[^"]*(\w+\.[a-z]+|\d+\.\d+\.\d+\.\d+)\/
有人有什么建议吗?
最佳答案
尝试这个正则表达式:
([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:我的服务器
匹配 4:website.ca
关于java - 使用正则表达式,如何提取顶级域名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37121251/