![]() |
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:
wie kann ich dies nun Realisieren?
List.DelimitedText := StringReplace(Quelle[i], ' ', #255, [rfReplaceAll]);
Mit freundlichen Grüßen |
AW: StringReplace mehrfach
Erkläre deinen Ansatz doch mal :)
|
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.
|
AW: StringReplace mehrfach
Mit StringReplace wirst Du beide Patterns einzeln ersetzen müssen.
|
AW: StringReplace mehrfach
Zitat:
PS: In ![]() |
AW: StringReplace mehrfach
Hallo, danke erstmal für eure Antworten,
derzeit habe ich mit
Code:
den Anfang entfernen können, jedoch fehlt jetzt der Rest ;)
MWKStringReplace.StringReplace(Quelle[i], '(?<=^|[[:punct:][:space:]])', '', [rfReplaceAll]);
MfG |
AW: StringReplace mehrfach
Und wo ist jetzt das Problem? Das gleiche nochmal mit dem anderen String, das kann doch nicht so schwer sein.
|
AW: StringReplace mehrfach
HeHe
Also:
Code:
Klappt schonmal nicht... da nimmt er nur des Letztere :) das ist das Doofe
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 MfG |
AW: StringReplace mehrfach
Delphi-Quellcode:
List.DelimitedText := MWKStringReplace.StringReplace(MWKStringReplace.StringReplace(Quelle[i], '(?<=^|[[:punct:][:space:]])', '', [rfReplaceAll]), '(?=[[:punct:][:space:]]|$)', '', [rfReplaceAll]);
|
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 04:13 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