AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

wie benutze ich regular expressions?

Ein Thema von nimmersattXD · begonnen am 1. Jun 2009 · letzter Beitrag vom 9. Jun 2009
Antwort Antwort
nahpets
(Gast)

n/a Beiträge
 
#1

Re: wie benutze ich regular expressions?

  Alt 5. Jun 2009, 10:49
Hallo,

Du ermittelst per LastPos das letzte Vorkommen eines /. In Deinem HTML kann aber hinter dem letzten / aus der Pfad zum Bild noch ein / für ein schließendes HTML-Tag vorkommen. Du muss Dir hier eine andere Lösung suchen, da Du unterschiedlich strukturierte HTML-Seiten zu parsen hast.

Ausgehen von der von Dir geposteten HTML-Seite, müsste re.match mit diesem regulären Ausdruck
Code:
src=[\\]{0,1}".*"
eigentlich
Code:
src=\"\/at\/app_pic\/modules\/right\/Freizeichenton_der_Woche_Alexander%20Rybak-Fairytales.jpg\"
enthalten. Ist das bei Dir ebenfalls so?
Delphi-Quellcode:
if re.Exec(page.Text) then
repeat
  idx:=LastPos('/',re.match[1]);
  if idx > 0 then filename:=copy(re.Match[1],idx+1,40)
    else filename:=re.match[1];
  LiBoPicsFoundInPages.Items[i]:=filename;
until not re.ExecNext;
Ist das noch Dein derzeit aktuellen Quellcode? (Wenn nicht, bitte mal die aktuelle Version posten.)
Beim Copy werden von dem gefundenen String ab der letzten Position von / 40 Zeichen kopiert. Im Beispiel ist der Name des Bildes aber deutlich länger als 40 Zeichen, so dass hier zumindest was abgeschnitten wird.

Vorschlag:
copy(re.Match[1],idx+1,40) ändern incopy(re.Match[1],idx+1,Length(re.Match[1])) um alles ab dem letzten / zu kopieren und dann diesen String weiterverarbeiten. Wenn der Aufbau aller Dateien identisch ist, dann könnte es damit funktionieren:
Delphi-Quellcode:
if idx > 0 then begin
  filename:=copy(re.Match[1],idx+1,Length(re.Match[1]));
  idx := Pos('\',filename);
  if idx > 0 then filename := copy(filename,1,idx - 1);
end else filename:=re.match[1];
Mir scheint, dass Du zwei recht unterschiedliche Arten von HTML-Dateien vorliegen hast, einmal "richtiges" HTML und einmal in HTML enthaltenes Javascript. Da die Dateien anscheinend unterschiedliche Dateiendungen haben, solltest Du sie eventuell separat behandeln, um die Komplexität ein bisserl zu reduzieren.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:23 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