RegEx macht wieder mal nicht was ich moechte
Wieso findet RegExStr = 'ABC.*(\d*).*XYZ' die Zahl 3 im String 'ABC irgendwas 3 something XYZ' nicht?
So wie ich das verstehe sollte .* fuer eine beliebige Anzahl Zeichen stehen, also alles zwischen ABC und 3, bzw zwischen 3 und XYZ zulassen. Der Ausdruck (\d*) muesste bewirken, dass eine gefundene Zahl am Ende in Item[0].Groups[1].Value landet, also in der ersten Gruppe (Gruppe durch die runden Klammern festgelegt). Der Ausdruck \d* muesste fuer eine beliebig lange Kette von Zahlen stehen, so dass jede beliebige Zahl anstatt der 3 im String zurueckgegeben werden sollte.
Aus irgendwelchen Gruenden ist Match.Count aber 0;
Der Kern der Implementation sieht folgendermassen aus:
Delphi-Quellcode:
RegExStr := 'ABC.*(\d*).*XYZ';
RegEx := TRegEx.Create(RegExStr,[roSingleLine,roIgnoreCase]);
MatchZ := RegEx.Matches(RichEdit1.text);
RichEdit1.text enthaelt den String 'ABC irgendwas 3 something XYZ'