替换网址字符串中的主机名

时间:2018-12-18 07:23:44

标签: ruby regex

原始问题

我有一个字符串URL,我需要提取该URL的子域。 我的网址如下:

user[:href] = "https://www.example.com/user-detail/1231-N-F-Albert"

我需要提取:

"https://www.example.com/"

并返回:

"/user-detail/1231-N-F-Albert"

是否有任何方法可以删除主机名并仅返回子域?我尝试过:

URI.parse(user[:href]).host.replace("")

,但返回为空。还有其他方法可以实现吗?


新问题

我已经改变了问题。我需要提取:

"https://www.example.com/user-detail"

并返回:

"1231-N-F-Albert"

有什么办法可以做到这一点?我尝试使用正则表达式,但没有用。

3 个答案:

答案 0 :(得分:2)

使用URI解析器并返回路径:

URI.parse("https://www.example.com/user-detail/1231-N-F-Albert").path
#=> "/user-detail/1231-N-F-Albert"

答案 1 :(得分:0)

使用以下代码。希望它干净且易于理解。

setvbuf(stdout, NULL, _IONBF, 0);

答案 2 :(得分:-1)

使用 Ruby#URI

> require 'uri'
# To get path from URL
> URI.parse("https://www.example.com/user-detail/1231-N-F-Albert").path
#=> "/user-detail/1231-N-F-Albert"

# To get last segment of url
> URI.parse("https://www.example.com/user-detail/1231-N-F-Albert").path.split('/').last
#=> "1231-N-F-Albert"