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):
trifft auf alle Wörter, die mit "F" anfangen, aber ungleich "Feta" sind.