TFbmRegExpr.MatchCount

Diese Variable ist vom Typ Integer und eine Eigenschaft der Klasse TFbmRegExpr, welche in der Unit RegExpr definiert wurde. Diese Variable bietet nur lesenden Zugriff.
Liefert die Anzahl der Treffer dieses Aufrufs von TFbmRegExpr.Exec bzw. TFbmRegExpr.ExecNext zurück.
Dies ist nicht die Anzahl der Vorkommen für die Ausführung des regulären Ausdrucks, sondern die Anzahl der Referenzen des einzelnen Treffers. Die verwendete Klasse kann vorab nicht ermitteln, wie oft ein Ausdruck in einem Text gefunden werden kann.
Ein Beispiel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
  RegExpr: TFbmRegExpr;

begin
  RegExpr := TFbmRegExpr.Create;

  try
    RegExpr.Expression := '([0-9]+)';

    if RegExpr.Exec('123 blah 456 testen 789') then
    repeat
      Item.AddToProtocol(IntToStr(RegExpr.MatchCount));
    until not RegExpr.ExecNext;
  finally
    RegExpr.Free;
  end;
end.
Der obige Code fügt immer 2 in das Systemprotokoll ein, weil $0 und $1 verfügbar sind. Insgesamt kann der reguläre Ausdruck aber 3 mal angewendet werden. Einmal mit Exec und zweimal mit ExecNext. Wenn man die Gesamtzahl der Treffer ermitteln möchte, muss man also einen Zähler einbauen.
MatchCount ist sinnvoll für reguläre Ausdrücke mit ODER-Operator. Je nach Abzweigung kann es vorkommen, dass es mal mehr und mal weniger Matches gibt. Auch bei der Verwendung einer dynamischen Expression kann dies sinnvoll sein (z.B. in Kombination mit TFbmRegExpr.EscapeRegExChars)