Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Alle Links einer HTML-Datei filtern (https://www.delphipraxis.net/114256-alle-links-einer-html-datei-filtern.html)

Nils_13 22. Mai 2008 11:49


Alle Links einer HTML-Datei filtern
 
Hi,

um alle Links einer HTML-Datei in eine StringList oder ähnliches zu bekommen, muss man Regular Expressions benutzen. Das Suchergebnis brachte mich zu TRegExpr. Der beiliegende HyperlinkDecorator kümmert sich scheinbar darum, aus http://blubb.de oder Abwandlungen davon einen HTML-Link zusammenzubauen, also so: . Ich möchte das Gegenteil, aus einem soll der Link im Klartext werden. Könnte man nicht dafür die im letzten Link gezeigte Unit umbauen ? Ich bin irgendwie zu blöd dafür :duck:

Die Muhkuh 22. Mai 2008 11:52

Re: Alle Links einer HTML-Datei filtern
 
Du willst aus

bla

den Link blubb.de bekommen?

Nils_13 22. Mai 2008 11:52

Re: Alle Links einer HTML-Datei filtern
 
Jo.

RWarnecke 22. Mai 2008 11:53

Re: Alle Links einer HTML-Datei filtern
 
Dieser Link hier zu den Schweizern könnte doch etwas für Dich sein.

Die Muhkuh 22. Mai 2008 11:54

Re: Alle Links einer HTML-Datei filtern
 
Ich schlage mal diese RegEx vor:

#(.*?)#

Nils_13 22. Mai 2008 11:59

Re: Alle Links einer HTML-Datei filtern
 
Hm, den hatte ich auch schonmal, allerdings wird leider nichts ausgegeben.
Delphi-Quellcode:
for j := 0 to Pred(sl.Count) do
begin
  RegExpr.Expression := '#[url="(.*?)"](.*?)[/url]#';
  if RegExpr.Exec(sl[j]) then
  begin
    repeat
      Result.Append(RegExpr.Match[1]);
    until
      not RegExpr.ExecNext;
  end;
end;

alcaeus 22. Mai 2008 12:15

Re: Alle Links einer HTML-Datei filtern
 
Versuchs mal mit TRegExpr.Match(). Ich hab lang nichts mehr mit der Komponente gemacht, d.h. ich kann dir grad nicht sagen, wie du an die Matches kommst, aber in den Projekten, wo ich was matchen musste, hab ichs mit Match gemacht:
Delphi-Quellcode:
preRegExp.RegEx := '[url="(.*?)"](?:.*?)[/url]';
preRegExp.Subject := idhWebsite.Get('http://www.foo.bar');
if (not preRegExp.Match()) then
begin
  bCancelled := True;
end
else
begin
  Link := preRegExp.SubExpressions[1];
end;
Da faellt mir auf: die Komponente will die RegEx ohne Delimiter. Lass mal die # weg ;)

Greetz
alcaeus

marabu 22. Mai 2008 12:28

Re: Alle Links einer HTML-Datei filtern
 
Hallo,

eine Alternative wäre noch Hier im Forum suchenExtractLinks(), z.B. hier: Memo nach bestimmten Links durchsuchen

Freundliche Grüße

FAlter 22. Mai 2008 12:29

Re: Alle Links einer HTML-Datei filtern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

notfalls geht es auch ohne RegEx.

Mfg
FAlter

Nils_13 22. Mai 2008 14:32

Re: Alle Links einer HTML-Datei filtern
 
Danke für die vielen Antworten, werde mal schauen, was sich am besten eignet und hoffentlich nicht nochmal in diesem Thema eine Frage stellen :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz