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!