AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RegEx unter Delphi

Ein Thema von BaedDog · begonnen am 9. Aug 2006 · letzter Beitrag vom 9. Aug 2006
Antwort Antwort
BaedDog

Registriert seit: 9. Aug 2006
Ort: Buxtehude
12 Beiträge
 
#1

RegEx unter Delphi

  Alt 9. Aug 2006, 12:32
Hi,

so langsam bin ich am verzweifeln. Schon seit Tagen such ich eine Delphi Modul womit ich Reguläre Ausdrücke unter Delphi 7 verwenden kann. Jetzt hab ich eins gefunden (TPerlRegEx), allerdings finde ich nirgends Code Beispiele oder sonstige Tutorials. Ich hoffe hier im Forum hat schon jemand Erfahrungen damit gesammelt.

Mein Problem ist folgendes. Das ersetzen klappt wunderbar, nur leider ersetzt er immer nur den ersten String, den er findet.

Delphi-Quellcode:
function regExReplace(ARegEx, AReplace, AText: String): String;
begin
  with TPerlRegEx.Create(nil) do
  begin
    RegEx := ARegEx;
    Subject := AText;
    Options := [preCaseLess,preSingleLine];
    Replacement := AReplace;

    if (Match() = TRUE) then
      Replace;

    result := Subject;

    Free();
  end;
end;

procedure test;
begin
  regExReplace('e', 'i', 'Das ist ein Beispiel Text');
end;
Hat jemand 'ne Idee wodran das liegen könnte?

MfG
BaedDog

EDIT:
Bitte ins richtige Forum verschieben, hat er eben falsch erstellt :/
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: RegEx unter Delphi

  Alt 9. Aug 2006, 12:38
Zitat von BaedDog:
so langsam bin ich am verzweifeln. Schon seit Tagen such ich eine Delphi Modul womit ich Reguläre Ausdrücke unter Delphi 7 verwenden kann.
Das hier kann ich sehr empfehlen.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
BaedDog

Registriert seit: 9. Aug 2006
Ort: Buxtehude
12 Beiträge
 
#3

Re: RegEx unter Delphi

  Alt 9. Aug 2006, 12:47
Das hatte ich vorher schonmal probiert, allerdings wird dort das (?:...), sprich das nicht zwischenspeichern von Gruppierung als Subpattern unterstützt.
  Mit Zitat antworten Zitat
BaedDog

Registriert seit: 9. Aug 2006
Ort: Buxtehude
12 Beiträge
 
#4

Re: RegEx unter Delphi

  Alt 9. Aug 2006, 15:32
Hab das jetzt selbst hinbekommen, muste das in einer Schleife ersetzen lassen, also hier der richtige Code:
Delphi-Quellcode:
function regExReplace(ARegEx, AReplace, AText: String): String;
begin
  with TPerlRegEx.Create(nil) do
  begin
    RegEx := ARegEx;
    Subject := AText;
    Options := [preCaseLess,preSingleLine];
    Replacement := AReplace;

    if (Match() = TRUE) then
    repeat
      Replace;
    until not MatchAgain();

    result := Subject;
    Free();
  end;
  Mit Zitat antworten Zitat
Phistev
(Gast)

n/a Beiträge
 
#5

Re: RegEx unter Delphi

  Alt 9. Aug 2006, 15:52
wie wär's mit function ReplaceAll: Boolean; ?
  Mit Zitat antworten Zitat
BaedDog

Registriert seit: 9. Aug 2006
Ort: Buxtehude
12 Beiträge
 
#6

Re: RegEx unter Delphi

  Alt 9. Aug 2006, 15:58
Ne, dann ersetzt er den Kram falsch. kA wieso.
Auf jeden Fall ist replaceAll was anderes als meine Lösung.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:57 Uhr.
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