Форум: "Начинающим";
Текущий архив: 2009.08.30;
Скачать: [xml.tar.bz2];
ВнизTRegExp и парсинг HTML Найти похожие ветки
← →
NIIL (2009-07-03 12:10) [0]Всем доброго дня. Есть необходимость пропарсить кусок HTML. Загружать через TWebBrowser и далее ковырять DOM нет возможности. Исп. стандартные стредства типа Pos то же не улыбвает.
Нашел замечательный класс TRegExp, к сожалению найти инф. о регулярных выр. для него не могу. Нужно из куска html сначала вытащить текст между <Table> </Table>, далее <Tr> </Tr> и т.п. Подскажие выражение для поиска первого с учетом того, что открывающий тег может иметь еще параметры объекта, но все равно закрывается ">" и без учета регистра по тегам. Заранее спасибо.
← →
Palladin © (2009-07-03 12:11) [1]
> Исп. стандартные стредства типа Pos то же не улыбвает.
чем же интересно?
← →
NIIL (2009-07-03 12:16) [2]Слишком много придеться учитывать и фильтровать, да и смысл когда это уже написано в этом классе
← →
Palladin © (2009-07-03 12:17) [3]а что там нужно учитывать? таблица одна?
← →
NIIL (2009-07-03 12:18) [4]Нет не одна, точнее в том куске может быть их несколько и могут идти с разрывом.
← →
Kolan © (2009-07-03 12:19) [5]
> к сожалению найти инф. о регулярных выр. для него не могу
http://regexpstudio.com/
← →
NIIL (2009-07-03 12:21) [6]Читал. Пытаюсь вот так для строки, но не выходит:<TR[^>]*[</TR>]*>
← →
Palladin © (2009-07-03 12:22) [7]и тебе они все нужны?
← →
NIIL (2009-07-03 12:23) [8]На самом деле пытаюсь парсить не полные таблицы, а их строки, а потом их ячейки
← →
Сергей М. © (2009-07-03 12:26) [9]
> найти инф. о регулярных выр. для него не могу
Как это так ?
Класс этот поставляется разработчиком вместе со вполне внятной справкой в chm-формате .. Куда она у тебя потерялась ?)
← →
NIIL (2009-07-03 12:31) [10]У меня она идет с небольшой справкой hlp формата в которой я не смог найти упоминания о способе получения текста между 2-мя искомыми выражениями. В сети нашел подобное упоминание <TR>(.+)</TR>, но оно к сожалению не проходит. Результат получаю в Match[0] - пуст после выполнения
← →
Kolan © (2009-07-03 12:46) [11]<TR>(.+)</TR> должно работать, только надо экранировать спец. символы, например: знак «/».
← →
Сергей М. © (2009-07-03 12:47) [12]А, вру .. действительно в формате hlp ..
procedure TForm1.Button5Click(Sender: TObject);
const
s: String = "<tr>Всякая хрень</tr>";
var
RegExpr: TRegExpr;
begin
RegExpr := TRegExpr.Create;
RegExpr.ModifierI := True;
RegExpr.Expression := "<TR>(.+)</TR>";
if RegExpr.Exec(s) then
ShowMessage(RegExpr.Match[1]);
end;
← →
NIIL (2009-07-03 12:48) [13]Kolan © Можно поподробнее...
Вот так: <TR>(.+)<"/"TR> или для экранирования в TRegExp свои служ. символы?
← →
NIIL (2009-07-03 12:54) [14]Понял в чем проблема. Выражение не парсило так как в html коде идет <TR class=...> Как можно расширить условия поиска 1-й метки до символа ">"
← →
clickmaker © (2009-07-03 12:57) [15]> Как можно расширить условия поиска 1-й метки до символа
> ">"
так же как и между > и <
← →
NIIL (2009-07-03 13:07) [16]<TR(.+)>(.+)</TR> - возвращает всю строку от первого вхождения <TR до последнего </TR>, а мне нужно до первого закрытия, ограничить режим жадности, как это написано в мануале и еще хотелось бы получить текст без вхождения поисковых тегов
← →
NIIL (2009-07-03 13:11) [17]С Жадностью разобрался
← →
NIIL (2009-07-03 13:16) [18]Все, вроде разобрался! Спасибо всем кто учавствовал
← →
NIIL (2009-07-03 14:37) [19]И еще. Подскажите перебрать все включения можно через Match[i] или же через ExecNext. При использовании последнего вылетает ошибка отсутсвия процедуры ExecPos. Не понятно как с ней работать.
← →
antonn © (2009-07-03 14:43) [20]примерно так:
procedure GetIPList(Str, RegStr: String; LB: TListBox);
var RE: TRegExpr;
Ulist: TStrings;
i: Integer;
begin
RE:=TRegExpr.Create;
Ulist:=TStringlist.Create;
try
RE.Expression:=RegStr;
if ExecRegExpr(RegStr,Str) then
if RE.Exec(Str) then begin
repeat
LB.Items.Add( RE.Match[0] );
until not RE.ExecNext;
end;
finally
RE.Free;
Ulist.Free;
end;
end;
← →
Сергей М. © (2009-07-03 14:46) [21]
> NIIL (03.07.09 14:37) [19]
ExecNext() возвращает новый список Match[]
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.08.30;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c