Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   DIRegEx - String auf Pattern testen (https://www.delphipraxis.net/173056-diregex-string-auf-pattern-testen.html)

Getox 5. Feb 2013 10:49

Delphi-Version: 2007

DIRegEx - String auf Pattern testen
 
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".

Jens01 5. Feb 2013 11:45

AW: DIRegEx - String auf Pattern testen
 
Könnte das für Dich passen?

Getox 5. Feb 2013 11:52

AW: DIRegEx - String auf Pattern testen
 
Das ist ja von dem "original" RegEx, das ab XE drin ist. Ich muss aber, da ich D2007 habe auf eine Komponente von einem Drittanbieter zurückgreifen und in der gibt es das "isMatch" leider nicht. Aber ja, wenn ich XE hätte, wäre es das was ich suche :P

Ich habe die Hoffnung, dass hier einer schon mit DIRegEx gearbeitet hat (http://www.yunqa.de/delphi/doku.php/...ts/regex/index) und dem entsprechend eine Antwort kennt.

Ich habe mir die Methoden auch schon durchgelesen, aber irgendwie finde ich das passende nicht.

Edit: Ich habe nun den Befehl "MatchResult" gefunden, welcher eine -1 rausgibt, wenn der String nicht gepasst hat. Das sieht zwar etwas provisorisch aus finde ich, aber es reicht um meine Ziele weiter zu verfolgen.

Jens01 5. Feb 2013 12:15

AW: DIRegEx - String auf Pattern testen
 
http://www.regular-expressions.info/delphi.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz