Hola ellucho, bienvenido a los foros de Club Delphi
y como se acostumbra con los iniciados te invitamos a leer nuestra
guía de estilo.
Si solamente buscas las ocurrencias entre dos cadenas exactas, sin pretender la flexibilidad que te ofrece un parser, desde
Delphi podes hacer:
Código Delphi
[-]
uses StrUtils;
procedure FindBetween(htmlText: string; const Since, Unto: string; Result: TStrings);
var
p1, p2: Integer;
begin
if (Since = '') or (Unto = '') then Exit;
repeat
p1 := Pos(Since, htmlText);
p2 := PosEx(Unto, htmlText, p1);
if (p1 <> 0) and (p2 <> 0) then
begin
Result.Add(Trim(Copy(htmlText, p1 + Length(since), (p2 - p1) - Length(since))));
Delete(htmlText, 1, p2 + Length(Unto));
end;
until (p1=0) or (p2 = 0);
end;
Ej. de la prueba:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo2.Lines.Clear;
FindBetween(Memo1.Text, Edit1.Text, Edit2.Text, Memo2.Lines);
end;
Salida:
Saludos