Einzelnen Beitrag anzeigen

Gutelo

Registriert seit: 29. Sep 2013
152 Beiträge
 
#1

RegEx, Probleme mit Suchstring

  Alt 25. Apr 2014, 03:27
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'

Geändert von Gutelo (25. Apr 2014 um 04:29 Uhr)
  Mit Zitat antworten Zitat