В TStrings находится документ HTML. В нем присутствует такое HTML: <td class="name"><a href="http://ссылка.ру">Какято лажа написана</a><small>Тут еще фигня, теги</small></td> Оно повторяется много раз, причем может быть, что в одной строке несколько. Мне нужно из этой конструкции вытащить ссылки (http://ссылка.ру). Запихнуть надо их в TStrings. Как это можно реализовать попроще, помогите, пжлст)
проще всего это пишеться на Php ! так че думай.... есле че могу помочь на php сделать! делфи я не знаю.
Спасибо, конечно, но программа уже практически готова (чуть не сдох!), да и должна быть на компилируемом языке. Я тут подумал... Есть же инструменты парсинга XML, нелязя ли выполнить эту задачу с их помощью?
Спасибо. Но плиз, объясни, как сделать, чтобы он в одной строке искал несколько раз? Code: procedure TForm1.Button1Click(Sender: TObject); var i : integer; s : string; begin For i := 0 to memo1.Lines.Count - 1 do begin s := memo1.Lines.Strings[i]; if pos('<td class="name"><a href',s) <> 0 then begin s := copy(s,pos('<td class="name"><a href=',s)+26,length(s)); s := copy(s,0,pos('">',s)-1); memo2.Lines.Add(s); end; end; end; Потому что он находит первую ссылки и выводит, а мне надо несколько из каждой строки. (((
О! Нашел проект http://www.regexpstudio.com Видимо очень удобная вещь. Взял пример по вытаскиванию мыльников из Tstrings. Только вот что-то не глотает мое выражение '\<td class\=\"name\"\>\<a href=\"'+'[_a-zA-Z\d\-\.]'+'\"\>' вроде все что может мешать заэкранировал, посмотрите, плииз. Если заставлю это работать будет вообще малина. Буду искать такие же строки, а потом функцией gemaglabin`а выдергивать ссылки. Как я понимаю язык выражений аналогичен Perl/PHP.
<td class="name"><a href="(.*)"> Вот чего надумал. Но почему-то возвращает с переводами строки на прбелах
Вот за основу взят Гемин, пример, чтобы по сто раз не писать. На-ка вот. Code: procedure TForm1.Button1Click(Sender: TObject); var i : integer; s,link : string; begin memo2.Lines.Clear; For i := 0 to memo1.Lines.Count - 1 do begin s := memo1.Lines[i]; while pos('<a href',s) <> 0 do begin s := copy(s,pos('<a href=',s)+9,length(s)); link := copy(s,0,pos('">',s)-1); memo2.Lines.Add(link); s:=copy(s,pos('">',s),length(s)); end; end; end; end.
Спасибо запомощь но проблему уже решил. Используя регексы выдергивал нужные теги, а потом той же функцией вытягивал ссылки.