使用MATLAB解析锚点中的URL的HTML,快速帮助

时间:2012-06-20 19:24:49

标签: html regex matlab anchor

我有严格的时间限制,我真的需要一个正则表达式来解析这种类型的锚(它们都是这种格式)

<a href="20120620_0512_c2_1024.jpg">20120620_0512_c2_102..&gt;</a>

表示网址

20120620_0512_c2_1024.jpg

我知道它不是一个完整的网址,它是相对的,请帮助

到目前为止,这是我的代码

year = datestr(now,'yyyy');
timestamp = datestr(now,'yyyymmdd');
html = urlread(['http://sohowww.nascom.nasa.gov//data/REPROCESSING/Completed/' year '/c2/' timestamp '/']);
links = regexprep(html, '<a href=.*?>', '');

2 个答案:

答案 0 :(得分:3)

尝试以下方法:

url = 'http://sohowww.nascom.nasa.gov/data/REPROCESSING/Completed/2012/c2/20120620/';
html = urlread(url);
t = regexp(html, '<a href="([^"]*\.jpg)">', 'tokens');
t = [t{:}]'

生成的单元格数组(截断):

t = 
    '20120620_0512_c2_1024.jpg'
    '20120620_0512_c2_512.jpg'
    ...
    '20120620_2200_c2_1024.jpg'
    '20120620_2200_c2_512.jpg'

答案 1 :(得分:1)

我认为这就是你要找的东西:

htmlLink = '<a href="20120620_0512_c2_1024.jpg">20120620_0512_c2_102..&gt;</a>';

link = regexprep(htmlLink, '(<a href=")(.*\.jpg)(">.*</a>)', '$2');

link =
20120620_0512_c2_1024.jpg

regexprep也适用于字符串的单元格数组,所以这也适用:

htmlLinksCellArray = { '<a href="20120620_0512_c2_1024.jpg">20120620_0512_c2_102..&gt;</a>', '<a href="20120620_0512_c2_1025.jpg">20120620_0512_c2_102..&gt;</a>', '<a href="20120620_0512_c2_1026.jpg">20120620_0512_c2_102..&gt;</a>' };

linksCellArray = regexprep(htmlLinksCellArray, '(<a href=")(.*\.jpg)(">.*</a>)', '$2')

linksCellArray = 
'20120620_0512_c2_1024.jpg'  '20120620_0512_c2_1025.jpg'  '20120620_0512_c2_1026.jpg'