Hallo,
sorry, den Anhang habe ich zunächst nicht bemerkt. So hat halt der Vorschlag nur auf dem Code-Schnipsel funktioniert. Ich habe mich nun einige Zeit mit der Geschichte auseinandergesetzt, drehe mich aber hier irgendwie im Kreis (Du machst es einem aber auch nicht einfach, wenn ein Teil gelöst, dann legen sich irgendwo Gänsefüßchen, Einrückungen etc. quer und jetzt sehe ich auch die Bäume vor lauter Wald nicht mehr oder war andersherum). Naja, wenn es mein Projekt beträfe, dann würde ich wohl an der Stelle mit der Suche nach "dem" Pattern abbrechen und mit einem geeigneten Hilfspattern die Vorselektion machen und mir über das OnMatch die Daten merken (was einmal reinkommt einmal merken), um sie im Nachgang auszuwerten.
Mit
Delphi-Quellcode:
procedure TForm1.RegExMatch (Sender : TObject);
begin
// Do whatever you think is necessary to do
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FRegEx := TPerlRegEx.Create;
try
FRegEx.Subject := UTF8Encode (Memo1.Lines.Text);
FRegEx.Options := [preCaseLess];
FRegEx.RegEx := '(?!%%[array]_*)%%\w*%%';
FRegEx.OnMatch := RegExMatch;
if FRegEx.Match then
repeat
until not FRegEx.MatchAgain;
finally
FreeAndNil (FRegEx)
end
end;
sollte das dann auch funktionieren. Sorry, dass ich keine bessere Hilfe sein konnte
Gruß