![]() |
Re: Regex: Frage zur abfrage
ich glaub es liegt entweder an der Komponente oder mein Code hat einen hacken :gruebel:
(hab noch ein paar tage zeit bekommen :-D )
Delphi-Quellcode:
vielleicht ist hier der Fehler?
var
code: array of string; regexMachine: TPerlRegEx; begin SetLength(code, 0); //Array initialisieren SetLength(pos, 0); // regexMachine := TPerlRegEx.Create(nil); try regexMachine.RegEx := '[A-Za-z0-9äöüÄÖÜß]*[A-Za-zäöüÄÖÜß]+[A-Za-z0-9äöüÄÖÜß]*'; // mit dem [\p{N}_]*[\p{L}_]+[\p{N}_]* hab ich es auch versucht hat auch nicht funktioniert regexMachine.Subject := 'hallo was machst du'; regexMachine.Options := regexMachine.Options + [preUnGreedy]; if regexMachine.Match then begin repeat setlength(code, Length(code) + 1);// Treffer um neu gefundenen erweitern code[Length(code) - 1] := regexMachine.MatchedExpression;// Neue Treffer in das code Array eintragen until not regexMachine.MatchAgain; // und weitersuchen. Abbruch, wenn kein Treffer mehr end; memo1.Lines.add(code[0]); finally regexMachine.free; end; |
Re: Regex: Frage zur abfrage
Kann den Code hier nicht testen, da ich die Komponente hier nicht installiert habe.
Oben wurde gesagt, dass alle Wörter matchen, da die RegEx gierig ist, und somit alles frisst, was sie finden kann. In diesem Zusammenhang sieht mir folgendes etwas merkwürdig aus:
Delphi-Quellcode:
Desweiteren meine ich, mich erinnern zu können, dass die Matches mit
regexMachine.Options := regexMachine.Options + [preUnGreedy];
Delphi-Quellcode:
abgefragt werden.
regexMachine.SubExpressions[...]
|
Re: Regex: Frage zur abfrage
[quote="MarioM."]
In diesem Zusammenhang sieht mir folgendes etwas merkwürdig aus:
Delphi-Quellcode:
Was soll ich deiner Meinung nach machen?
regexMachine.Options := regexMachine.Options + [preUnGreedy];
Wenn du das meinst:
Delphi-Quellcode:
verändert es sich auch leider nicht.
regexMachine.Options :=[preUnGreedy];
Das mit regexMachine.SubExpressions[...] hatte ich auch schon. Was nimmst du für eine Kompo? |
Re: Regex: Frage zur abfrage
Zitat:
|
Re: Regex: Frage zur abfrage
Zitat:
![]() Desweiteren kann es nicht schaden, wenn Du Dir ein kleines Tool zulegst, mit dem Du Deine RegEx testen und debuggen kannst. Da Du die PerlRegEx-Komponente einsetzt, liegt es nahe, Dein Taschengeld in den ![]() |
Re: Regex: Frage zur abfrage
Zitat:
Ich werde mir die Links mal anschauen (ein Buch darüber ist bestimmt nicht verkehrt :mrgreen: ). Danke für eure ganzen Antworten :thumb: :thumb: MfG Chefx |
Re: Regex: Frage zur abfrage
Hallo,
Zitat:
Nee, mal im Ernst; 'Der Friedl' - oder auch das 'Eulenbuch' genannt, ist das Standardwerk, wenn es um RegEx geht. Und man lernt beim Lesen nicht nur etwas über die Regulären Ausdrücke, sondern auch noch ein bissel Perl, was dem ein oder anderen vielleicht Lust auf mehr macht. Begleitend dazu würde ich noch diese kleine ![]() Und natürlich das Tool, das Mario oben schon empfohlen hat. Die Programme von JG-Soft sind, was Reguläre Ausdrücke betrifft, wirklich genial - besonders auch PowerGREP, was auf den ersten Blick recht teuer erscheint, aber für mich bisher jeden Cent wert war! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 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