Hiho,
ich probiere grade ein wenig mit RegEx rum. Da diese Technik erst mit XE eingeführt wurde, arbeite ich mit DIRegEx von Ralf Junker.
Ich habe schon so weit, dass ich einzelne Wörter aus Strings raussuchen kann und Gruppen durch klammern im Pattern bestimmen und anschließend über substring ansprechen kann.
Mein problem ist jedoch ein anderes:
Ich will sagen: Wenn der String komplett auf den Pattern passt, dann führe Aktion XY aus, ansonsten mache was anderes.
also ein Beispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
VAR
RegEx: TDIRegEx;
Words: String;
begin
Words := Edit1.Text + ':' + Edit2.Text;
RegEx := TDIPerlRegEx.Create(nil);
RegEx.SetSubjectStr(Words);
RegEx.MatchPattern := '(\w+):(\w+)';
RegEx.Match;
if 'Hier weis ich nicht was ich abfragen soll' then
begin
Label1.Caption := RegEx.SubStr(1);
Label2.Caption := RegEx.SubStr(2);
Label3.Caption := Words;
end;
end
Es kann ja in diesem Beispiel auch sein, dass Edit1 oder Edit 2 leer sind. In dem Fall würde der String nicht auf den Pattern passen und beim versuch den Substring abzufragen würde ich ein 'out of bounds' um die Ohren bekommen. Ich suche quasi einen Boolean, der mir sagt "String passt auf Pattern" oder "String passt nicht auf Pattern".