2

私は厳密な時間制限を設けており、このタイプのアンカーを解析するには正規表現が本当に必要です (それらはすべてこの形式です)

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

URLの

20120620_0512_c2_1024.jpg

完全な URL ではなく、相対 URL であることはわかっています。助けてください

これまでの私のコードは次のとおりです

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=.*?>', '');
4

2 に答える 2

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{:}]'

結果の cell 配列 (切り捨てられた):

t = 
    '20120620_0512_c2_1024.jpg'
    '20120620_0512_c2_512.jpg'
    ...
    '20120620_2200_c2_1024.jpg'
    '20120620_2200_c2_512.jpg'
于 2012-06-21T08:32:40.203 に答える
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'
于 2012-06-20T19:54:01.780 に答える