Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Beliebigkeitssymbol? (https://www.delphipraxis.net/123420-beliebigkeitssymbol.html)

3_of_8 1. Nov 2008 21:36

Re: Beliebigkeitssymbol?
 
In dem Wikipediaartikel sind mehrere gute verlinkt - und der Artikel selbst erklärt es auch recht gut.

Meflin 1. Nov 2008 22:42

Re: Beliebigkeitssymbol?
 
Zitat:

Zitat von bigben37
Kannst Du mir irgend eine Seite empfehlen?

http://www.regular-expressions.info/tutorial.html ;)

MaToBe 2. Nov 2008 12:09

Re: Beliebigkeitssymbol?
 
mmh hat vielleicht jemand noch ne seite, wo man diese Unit/Komponente herunterladen kann?

Auch wenn ich weiß das die Computersprache und die Tutorials dazu in Englisch sind hätt ich gern ein Deutsches wenns irgendwie machbar ist.

MFG

omata 2. Nov 2008 12:18

Re: Beliebigkeitssymbol?
 
klick

Beispiel...
Delphi-Quellcode:
function Replace(Input:string):string;
var RegExpr:TRegExpr;
begin
  RegExpr:=TRegExpr.Create;
  try
    RegExpr.ModifierG:=false;
    RegExpr.Expression:='(\[.*\])';
    Result:=RegExpr.Replace(Input, '0', false);
  finally
    RegExpr.free;
  end;
end;

Jakob Ullmann 2. Nov 2008 12:46

Re: Beliebigkeitssymbol?
 
Zitat:

Delphi-Quellcode:
    RegExpr.ModifierG:=false;

warum diese Zeile? :gruebel:

omata 2. Nov 2008 13:10

Re: Beliebigkeitssymbol?
 
Die Zeile schlatet auf "nicht gierig" um.
Dies ist wichtig, damit bei mehrfachem Vorkommen von "[ bla ]" auch alle für sich zu einer "0" werden.

Aber das hättest du auch einfach ausprobieren können.

3_of_8 2. Nov 2008 13:11

Re: Beliebigkeitssymbol?
 
Okay...

Pattern: \[.*\]
String: [wuppdi]blabla[narf]

Mit Greedy-Modifier: 1 Match: [wuppdi]blabla[narf]
Ohne Greedy-Modifier: 2 Matches: [wuppdi] und [narf]

Der Greedy-Modifier sorgt dafür, dass jedes Pattern sich so viel Text wie möglich schnappt. Ohne Greedy wird versucht, so wenig Text wie möglich pro Match zu nehmen.

MaToBe 2. Nov 2008 13:13

Re: Beliebigkeitssymbol?
 
supper danke hat perfekt funktioniert :-D :cheers:

MaToBe 3. Nov 2008 11:40

Re: Beliebigkeitssymbol?
 
Delphi-Quellcode:
function Replace(Input:string):string;
var RegExpr:TRegExpr;
begin
  RegExpr:=TRegExpr.Create;
  try
    RegExpr.ModifierG:=false;
    RegExpr.Expression:='(\[.*\])';
    Result:=RegExpr.Replace(Input, '', false);
  finally
    RegExpr.free;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  MemoIniShow.Lines[0] := Replace(MemoIniShow.Lines[0]);
end;
es gibt leider doch noch ein Problem.

Es werden immer 6[*] auf einmal gelöscht. Das bedeutet für mich, dass wenn in einem Text 20x[*] vorkommt, dass ich 4 mal auf den Butto1 klicken muss. Nach dem 10-15 mal drücken allerdings führt er keinen Replace mehr aus, obwohl ich auf den Button drücke und noch[*] Stellen vorhanden sind.

Woran liegt das?

MaToBe 4. Nov 2008 14:34

Re: Beliebigkeitssymbol?
 
Zitat:

Zitat von MaToBe
Delphi-Quellcode:
function Replace(Input:string):string;
var RegExpr:TRegExpr;
begin
  RegExpr:=TRegExpr.Create;
  try
    RegExpr.ModifierG:=false;
    RegExpr.Expression:='(\[.*\])';
    Result:=RegExpr.Replace(Input, '', false);
  finally
    RegExpr.free;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  MemoIniShow.Lines[0] := Replace(MemoIniShow.Lines[0]);
end;
es gibt leider doch noch ein Problem.

Es werden immer 6[*] auf einmal gelöscht. Das bedeutet für mich, dass wenn in einem Text 20x[*] vorkommt, dass ich 4 mal auf den Butto1 klicken muss. Nach dem 10-15 mal drücken allerdings führt er keinen Replace mehr aus, obwohl ich auf den Button drücke und noch[*] Stellen vorhanden sind.

Woran liegt das?

Kann mir das bitte jemand erklären? Würd auch gern verstehn wo der Fehler liegt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:55 Uhr.
Seite 2 von 3     12 3      

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