Einzelnen Beitrag anzeigen

Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#1

Reguläre Ausdrücke Wort auschließen mit RegExp Studio

  Alt 1. Mai 2013, 13:16
Hallo, es gelingt mir nicht mit RegExp Studio http://regexpstudio.com/DE/TRegExpr/...xp_Syntax.html ein Wort beim Lesen eines Strings auszuschließen.

Im Internet habe ich folgendes Pattern gefunden:
Code:
\b(?:(?!(?>\bAusname1\b|\bAusname2\b))[a-z])+\b
Es soll alle Wörter aus einem Text übernehmen bis auf "Ausname1" und "Ausname2".
Allerdings bringt mir der Compiler (Lazarus) immer einen Fehler. (TRegExpr(comp): Unrecognized Modifier (pos 36))
Die Syntax scheint nicht mit dem RegExp Studio kompatibel. Beim Umschreiben hatte ich noch keinen Erfolg.

Hier noch der Aufruf:
Delphi-Quellcode:
uses ... RegExpr ...
.
.
.
procedure TForm1.Button1Click(Sender: TObject);
var
  RegexObj : TRegExpr;
  Text, Str1: String;
begin
  try
    Text:= memo1.Text;
    RegexObj:= TRegExpr.Create;
    RegexObj.Expression:= '\b(?:(?!(?>\bAusnahme1\b|\bAusnahme2\b))[a-z])+\b';
    Str1:= '';
    if RegexObj.Exec(Text) then
    begin
      repeat //alle gefundenen Ausdrücke in String speichern
        Str1 := Str1 + RegexObj.Match[0];
      until not RegexObj.ExecNext;

      Memo2.Text:= Str1;
    end;
  finally
    RegexObj.Free;
  end;
end;

Oder bei hier dem Beispiel kommt TRegExpr(comp): Unrecognized Modifier (pos 11):
Code:
\bF(?!eta\b).*\b
trifft auf alle Wörter, die mit "F" anfangen, aber ungleich "Feta" sind.

Geändert von Ginko ( 1. Mai 2013 um 13:37 Uhr)
  Mit Zitat antworten Zitat