Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi RegExprCount (https://www.delphipraxis.net/83485-regexprcount.html)

PeterPanino 3. Jan 2007 15:27


RegExprCount
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,

heute möchte ich eine Funktion vorstellen, mit der man in einem String die Häufigkeit des Vorkommens von Teilstrings, die einem regulären Ausdruck (regular expression) entsprechen, feststellen kann. Man benötigt dazu die Unit RegExpr von Andrey V. Sorokin (http://www.regexpstudio.com).

Delphi-Quellcode:
function PARegExprCount(const S, E: string): integer;
var
  R: TRegExpr;
begin
  Result := 0;
  R := TRegExpr.Create;
  try
    R.Expression := E;
    if R.Exec(S) then
    begin
      Inc(Result);
      while R.ExecNext do
        Inc(Result);
    end;
  finally
    R.Free;
  end;
end;

// Beispielaufruf:

lblCount.Caption := IntToStr(PARegExprCount(edtInput.Text, edtRE.Text));

SubData 3. Jan 2007 15:56

Re: RegExprCount
 
Delphi-Quellcode:
  function RegExprSubExpressions (const ARegExpr : string;
    ASubExprs : TStrings; AExtendedSyntax : boolean = False) : integer;

PeterPanino 3. Jan 2007 16:30

Re: RegExprCount
 
Zitat:

Zitat von SubData
Delphi-Quellcode:
  function RegExprSubExpressions (const ARegExpr : string;
    ASubExprs : TStrings; AExtendedSyntax : boolean = False) : integer;

Du verwechselst da wahrscheinlich was: RegExprSubExpressions bezieht sich nicht auf den Input-String, sondern auf den Expression-String. Deshalb kann man mit RegExprSubExpressions nicht das Ergebnis erhalten, das man mit RegExprCount erhält (wenn du das gemeint hast). Hast du die Dokumentation von TRegExpr gelesen?

Schönen Gruß!


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 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