Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   StringReplace mehrfach (https://www.delphipraxis.net/167384-stringreplace-mehrfach.html)

EarthQuaker 27. Mär 2012 13:08

StringReplace mehrfach
 
Liebe User,

habe nochmal eine frage an euch, welches diesmal ein StringReplace betrifft oder um es genau zu sagen ein MultiStringReplace. Dazu folgendes Problem.

Ich möchte wie bereits gesagt ein StringReplace machen worin dies ersetzt werden soll

(?<=^|[[:punct:][:space:]])1mal(?=[[:punct:][:space:]]|$)

d.h. es muss "(?<=^|[[:punct:][:space:]])" vor dem "1mal" und "(?=[[:punct:][:space:]]|$)" nach dem "1mal" durch z.b. ein "+" ersetzt werden.

Dazu mein Ansatz:

Code:
List.DelimitedText := StringReplace(Quelle[i], ' ', #255, [rfReplaceAll]);
wie kann ich dies nun Realisieren?


Mit freundlichen Grüßen

CCRDude 27. Mär 2012 13:12

AW: StringReplace mehrfach
 
Erkläre deinen Ansatz doch mal :)

s.h.a.r.k 27. Mär 2012 13:13

AW: StringReplace mehrfach
 
Redest du nun eigentlich regulären Ausdrücken? :gruebel: Wenn ja, dann geht das mit Delphi 7 und StringReplace nicht. Du brauchst entsprechende Klassen dafür.

DeddyH 27. Mär 2012 13:14

AW: StringReplace mehrfach
 
Mit StringReplace wirst Du beide Patterns einzeln ersetzen müssen.

s.h.a.r.k 27. Mär 2012 13:20

AW: StringReplace mehrfach
 
Zitat:

Zitat von DeddyH (Beitrag 1158874)
Mit StringReplace wirst Du beide Patterns einzeln ersetzen müssen.

Achso... es geht wahrlich um ein normales StringReplace... Nun ja, kapsel die Methode doch?!

PS: In dieser Unit ist glaub das was du haben willst. Zudem ist diese schneller als StringReplace, soweit ich das noch weiß.

EarthQuaker 27. Mär 2012 13:38

AW: StringReplace mehrfach
 
Hallo, danke erstmal für eure Antworten,

derzeit habe ich mit

Code:
MWKStringReplace.StringReplace(Quelle[i], '(?<=^|[[:punct:][:space:]])', '', [rfReplaceAll]);
den Anfang entfernen können, jedoch fehlt jetzt der Rest ;)


MfG

DeddyH 27. Mär 2012 13:42

AW: StringReplace mehrfach
 
Und wo ist jetzt das Problem? Das gleiche nochmal mit dem anderen String, das kann doch nicht so schwer sein.

EarthQuaker 27. Mär 2012 13:45

AW: StringReplace mehrfach
 
HeHe


Also:


Code:
List.DelimitedText := MWKStringReplace.StringReplace(Quelle[i], '(?<=^|[[:punct:][:space:]])', '', [rfReplaceAll]);
List.DelimitedText := MWKStringReplace.StringReplace(Quelle[i], '(?=[[:punct:][:space:]]|$)', '', [rfReplaceAll]);
            if List.Count > 0 then
              Ziel1.Add(StringReplace(List[0], #255, ' ', [rfReplaceAll]));
            if List.Count > 1 then
Klappt schonmal nicht... da nimmt er nur des Letztere :) das ist das Doofe



MfG

Uwe Raabe 27. Mär 2012 13:53

AW: StringReplace mehrfach
 
Delphi-Quellcode:
List.DelimitedText := MWKStringReplace.StringReplace(MWKStringReplace.StringReplace(Quelle[i], '(?<=^|[[:punct:][:space:]])', '', [rfReplaceAll]), '(?=[[:punct:][:space:]]|$)', '', [rfReplaceAll]);

DeddyH 27. Mär 2012 13:54

AW: StringReplace mehrfach
 
Natürlich, weil DelimitedText den kompletten Text ersetzt. Du brauchst eine Zwischenvariable, wenn das einigermaßen lesbar bleiben soll.
Delphi-Quellcode:
s := StringReplace(s, ...);
s := StringReplace(s, ...);
List.DelimitedText := s;


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:18 Uhr.
Seite 1 von 2  1 2      

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