Fáb*_*rez 6 ruby regex string url parsing
我正在尝试获取给定URL的域名.例如http://www.facebook.com/someuser/
将返回facebook.com
.给定的URL可以采用以下格式:
https://www.facebook.com/someuser
(www.是可选的,但应该被忽略)www.facebook.com/someuser
(http://不是必需的)facebook.com/someuser
http://someuser.tumblr.com
- >这tumblr.com
只能返回我写了这个正则表达式:
/(?: \.|\/{2})(?: www\.)?([^\/]*)/i
但它没有像我期望的那样起作用.
我可以部分地做到这一点:
http://
和https://
,如果存在的字符串,string.delete "/https?:\/\//i"
.www.
用string.delete "/www\./i"
./(\w+\.\w+)+/i
但这不适用于子域.测试字符串:
https://www.facebook.com/username
http://last.fm/user/username
www.google.com
facebook.com/username
http://sub.tumblr.com/
sub.tumblr.com
Run Code Online (Sandbox Code Playgroud)
我需要这个以尽可能少的内存和处理海岸.
有任何想法吗?
Mau*_*res 10
为什么不直接使用URI类来执行此操作?
URI.parse( your_uri ).host
Run Code Online (Sandbox Code Playgroud)
而且你已经完成了.
只有一件事,如果在url的开头没有"http://"或"https://",你将不得不添加一个,或者解析方法不会给你一个主机(它会去是零).
归档时间: |
|
查看次数: |
6108 次 |
最近记录: |