![]() |
wie benutze ich regular expressions?
Hallo an alle,
ich habe schon ausgiebig nach eine loesung zu meinem problem gesucht, aba leider nichts gefunden, deswegen ein neues thema... ich habe bisher noch nie von regular expressions gehoert, soll aba damit mein programm schneller machen, was bis jetzt sehr langsam ist ich moechte aus html und htmlm dateien alle genutzten bilder raussuchen (ob nun jpg, png oder anderer formate), mit den regular expressions soll das ja leicht sein, nur hab ich keine ahnung wie man die benutzt, sind das funktionen die in delphi7 schon drin sinn oder wie muss ich das verstehen?? (da ich vista hab geht meine delhpi hilfe leider auch nicht :( ) bitte helft mir!! |
Re: wie benutze ich regular expressions?
|
Re: wie benutze ich regular expressions?
Für deinen Zweck ist nicht RegEx die zu vervorzugende Technik sondern ein HTML-Parser. Hierzu läst du die datei im TWebBrowser und gehst über das Document-Property welches vom Type IHTMLDocument2 ist (MSHTML.pas) und dort findest du eine Images-Auflistung. Funktioniert auch wenn statt HTML XML + XSLT vorliegt. Einig beim MS Word-HTML versagt diese Technik teilweise das das MS Word HTML teilweis alles anderes als vernünftiges HTML ist.
|
Re: wie benutze ich regular expressions?
Ein HTML Parser ist z.B.
![]() Damit kann man ganz einfach Bilder etc aus einer URL herausfiltern.
Delphi-Quellcode:
uses
{...}IEParser, MSHTML_EWB; procedure TForm1.IEParser1OnImage(Sender: TObject; Source: String; ImgElement: IHTMLImgElement; Element: TElementInfo); begin Memo1.Lines.Add(ImgElement.href); end; procedure TForm1.Button1Click(Sender: TObject); var IEParser: TIEParser; begin IEParser := TIEParser.Create(Self); try IEParser.OnImage := IEParser1OnImage; IEParser.Parse('http://delphipraxis.net'); finally IEParser.Free; end; end; |
Re: wie benutze ich regular expressions?
hui also vielen dank schonmal fuer die hilfreichen sachen!
das einzige was ich vllt nich richtig erklaert hab, ich habe die html und htmlm dateien richtig in ordnern, also brauche ich gar nicht in inet gehen :) ich hab mich jetzt auch auf der seite von omata die RegExpr unit geholt und mich weiter informiert (wikipedia) hab jetzt auch das prinzip verstanden! was mir jetzt noch kopf zerbrechen bringt ist, wie ich das mit den htmls realisiere, da es glaub ich unsinn waere den ganzen quelltext der htmls in das programm zu laden und das dann durchzusuchen! hat jemand vielleicht dazu eine idee?? das waere unheimlich nett!! ps: Ich habe im Grunde nur ein bisschen Schulwissen von Delphi, dass mit den HTML parser hab ich deshalb noch nicht richtig verstanden :coder2: |
Re: wie benutze ich regular expressions?
hat keiner einen tipp fuer mich?
|
Re: wie benutze ich regular expressions?
mmh gut ich hab jetzt erstmal probeweise mit loadfromfile den html-code in eine strinlist geladen!
Diesen text durchsuche ich mit re.Expression := '(.+).(jpg|png|pdf|bmp|gif)'; Leider gibt das Programm mir dann den ganzen html text aus, ich moechte aber nur die bild-dateinamen! Was hab ich falsch gemacht? |
Re: wie benutze ich regular expressions?
probier es doch ma damit
Code:
greedy sollte dabei allerdings aus!
<img .*src="([^"]*)"
|
Re: wie benutze ich regular expressions?
ähm da gibt das programm mir gar nichts aus! Hat denn jemand ne idee warum meins alles ausgiebt? es muesste doch sonst richtig sein oder?
ich freu mich auch ueber neue varianten! |
Re: wie benutze ich regular expressions?
Zeig doch mal deine Version. Vielleicht kann man darauf aufbauen. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:42 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 by Thomas Breitkreuz