Autor Beitrag
kuerbis2
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 06.12.07 17:18 
Hallo zusammen,

folgendes Problem:


Zitat:
testestest<br>
<img src="http://www.bloedeseite.de/img/st069327.jpg" width="140" height="105" alt="img">
<img src="http://www.bloedeseite.de/img/s554449327.jpg">
<img src="http://www.bloedeseite.de/img/costt069327.jpg" width="140" height="105" alt="img">
Blub foo bar ohne weitere Bilder dödel


soll durch diesen - imho - wunderschönen RegExp. <img\x20src=".+\b und der Funktion ReplaceRegExpr(cRegExp,cInput,cReplace):cOutput zu diesem hier werden:

Zitat:

testestest<br>
<img src="./greydot.gif" width="140" height="105" alt="img">
<img src="./greydot.gif">
<img src="./greydot.gif" width="140" height="105" alt="img">
Blub foo bar ohne weitere Bilder dödel


Mein Aufruf von ReplaceRegExpr('<img\x20src=".+\b',cInput,'<img src="./dot.gif') macht leider folgendes draus:
Zitat:

testestest<br>
<img src="./dot.gif


mit ReplaceRegExpr('<img\x20src=".+"\b',cInput,'<img src="./dot.gif"') macht leider folgendes draus:

Zitat:

testestest<br>
<img src="./greydot.gif"img">
Blub foo bar ohne weitere Bilder dödel


auch dieser Exp.: <img\x20src=".+(gif|jpg)"\b (mal abgesehen von Gross/klein) funktioniert nicht.

Lustig: während ich das hier schreibe probiere ich natürlich noch weiter rum.

<img\x20src="*" bringt mir das:

Zitat:

testestest<br>
<img src="./greydot.gif"http://www.bloedeseite.de/img/st069327.jpg" width="140" height="105" alt="img">
<img src="./greydot.gif"http://www.bloedeseite.de/img/s554449327.jpg">
<img src="./greydot.gif"http://www.bloedeseite.de/img/costt069327.jpg" width="140" height="105" alt="img">
Blub foo bar ohne weitere Bilder dödel


ist das jetzt ein Fehler in TRegExpr, oder was mache ich falsch?

Gruss, FoB


Moderiert von user profile iconNarses: Topic aus VCL (Visual Component Library) verschoben am Do 06.12.2007 um 16:51
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 07.12.07 02:03 
Moin!

Probier das mal so: ;)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
Memo2.Text := ReplaceRegExpr(
                '<img src=".+?"',
                Memo1.Text,
                '<img src="./greydot.gif"');

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
kuerbis2 Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Fr 07.12.07 09:11 
D A N K E !

aber wieso? das ? steht ja für {0,1}

das bedeutet doch eigentlich. finde <img src=" gefolgt von EINEM Zeichen, gefolgt von 1 - x Zeichen, gefolgt von EINEM oder KEINEM Zeichen, gefolgt von "

Weil das hier: <img src=".+." funzt nicht, was ja

bedeutet: finde <img src=" gefolgt von EINEM Zeichen, gefolgt von 1 - x Zeichen, gefolgt von EINEM Zeichen, gefolgt von "

D.h. dann doch, das bei dem funktionierenden RegEx das ? eigentlich auf "" (nix) gematcht wird, was ja dann doch eigentlich diesem hier: <img src=".+" entsprechen sollte. Oder nicht? - Es muß ja einen Unterschied geben, aber welcher und warum?!


Wenn Du mir das erklären kannst, warum es gerade mit dem ? funzt, wäre es toll - wenn nicht - auch gut - es funzt , und das ist wichtig!

Einschub:
ich glaube ich habe es gefunden, das ? "schaltet" das GIERIG ab....

Gruss, Fob