I need help in the code. what am I doing wrong?
2 次查看(过去 30 天)
显示 更早的评论
I am writing a function to display host name from the url. This function should return only hostname without the port number
eg
Output: en.wikipedia.org
or
Input: http://www.google.com
Output: www.google.com
My code so far
function [result] = url2hostname(url)
c1 = strfind(url,'//');
ind1 = strfind(url,'/');
if isempty(c1) && isempty(ind1)
result = url;
return;
end
if ~isempty(c1)
if numel(ind1)>2
result = url(1:ind1(3)-1);
else
result = url;
end
else
result = url(1:ind1(1)-1);
end
return;
result = result;
0 个评论
采纳的回答
Johan
2021-11-23
Hi,
I think you can just add a check for a ':' character in your code. Alternatively you can also use regular expression to do this kind of string manipulation. I put two exemples below:
1) The expression string tells regexp to match
any number of alphanumerical character: \w+
but only after it finds a :// character: (?<=://)
and only until it finds either a : or a / ?([^:]|/)+
expression = '(?<=://)\w+.?([^:]|/)+';
url = 'https://en.wikipedia.org:443/wiki/Kitten?printable=yes&download=no#External_links';
regexp(url,expression,'match')
url = 'http://www.google.com';
regexp(url,expression,'match')
2) Remake your code with simpler form of regexp to isolate the hostname of the url
url2hostname('http://www.google.com')
url2hostname('https://en.wikipedia.org:443/wiki/Kitten?printable=yes&download=no#External_links')
function result = url2hostname(url)
tag = regexp(url,'//+');
if ~isempty(tag)
url = url(tag+2:end);
end
tag = regexp(url,'/','once');
if ~isempty(tag)
url = url(1:regexp(url,'./','once'));
end
tag = regexp(url,'.:','once');
if ~isempty(tag)
url = url(1:tag);
end
result = url;
end
0 个评论
更多回答(1 个)
Ive J
2021-11-23
This may help:
fnc = @(url) regexp(url, "(?<=https?://)(.*?)[^:]*", 'match');
fnc('https://en.wikipedia.org:443/wiki/Kitten?printable=yes&download=no#External_links')
fnc('http://www.google.com')
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Whos 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!