Matlab:计算URL中的点数

时间:2014-03-01 07:05:12

标签: regex matlab

以下是我计算网址中点数的算法:      1)在matlab编辑器中输入完整的URL      2)消除后面的路径,然后离开URL的域部分      3)检查URL的域部分中的“。”/点数      4)如果URL的域部分中的'。'/点等于或大于3则返回1,否则如果1和3之间返回0,则返回-1

str = {'http://www.math-works.com/help/images/removing-noise-from-images.html';
      'https://www.math.works.com/help/matlab/ref/strcmpi@dfvfv.html';
      'google.com/voice';
      'http://m.o.n.k.e.y.org/';
      'stack.overflow.com/';
      'meta.stackoverflow.com'};

out = regexp(str,'.*?[^/](?=(/([^/]|$)|$))','match','once')

A = {'.'};

cellfun('.'(n) ~isempty(n), strfind(out, A{1}))>1

我已经解决了以下问题:1)在matlab编辑器中输入完整的URL 2)消除后面的路径,然后离开URL的域部分3)检查URL的域部分中的'。'/点数,但是现在有问题4)如果URL的域部分中的'。'/点等于或大于3然后返回1,否则如果在1和3之间返回0,否则返回-1

1 个答案:

答案 0 :(得分:1)

您只需使用正确的cellfun命令即可​​获得答案。

str = {'http://www.math-works.com/help/images/removing-noise-from-images.html';
  'https://www.math.works.com/help/matlab/ref/strcmpi@dfvfv.html';
  'google.com/voice';
  'http://m.o.n.k.e.y.org/';
  'stack.overflow.com/';
  'meta.stackoverflow.com'};

out = regexp(str,'.*?[^/](?=(/([^/]|$)|$))','match','once')
A=cellfun(@(x) length(strfind(x,'.')), out);
B=-1*ones(length(A),1);
B(A>=3)=1;
B(A==2)=0;  %I am assuming between 1 to 3 is equal to 2.

您实际上可以编写一个函数来从A创建B,然后在cellfun中包含该函数以直接获取B