![]() |
Reguläre Ausdrücke Wort auschließen mit RegExp Studio
Hallo, es gelingt mir nicht mit RegExp Studio
![]() Im Internet habe ich folgendes Pattern gefunden:
Code:
Es soll alle Wörter aus einem Text übernehmen bis auf "Ausname1" und "Ausname2".
\b(?:(?!(?>\bAusname1\b|\bAusname2\b))[a-z])+\b
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:
trifft auf alle Wörter, die mit "F" anfangen, aber ungleich "Feta" sind.
\bF(?!eta\b).*\b
|
AW: Reguläre Ausdrücke Wort auschließen mit RegExp Studio
Zitat:
Gruß, Sven |
AW: Reguläre Ausdrücke Wort auschließen mit RegExp Studio
Hey, danke für die Antwort !
Gibt es noch eine andere Unit für Lazarus mit Regulären Ausdrücken, die die Syntax unterstüzt ? Ich glaube ich verwende doch lieber ein modifiziertes StringReplace dafür, ist wahrscheinlich viel schneller und kostet nicht so viel Nerven... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 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