Entwickler-Ecke

Basistechnologien - nur ein Teil des Regex Pattern als Match


ebber - Fr 10.04.09 15:38
Titel: nur ein Teil des Regex Pattern als Match
Hallo,

ich suche mit diesem Pattern in einem Text nach einem Match:


C#-Quelltext
1:
  Regex.Match(text, "<font style=\"color:#FFFFFF;\">[0-9]+ KB</font></p>").Value;                    


Eigentlich möchte ich aber nur das [0-9]+. Deshalb suche ich jetzt noch ein zweites mal, aber könnte ich das auch gleich irgendwie in das Pattern einbauen?

MfG


Kha - Fr 10.04.09 17:26

Wenn du den Teil einklammerst, erschaffst du damit eine Group. Ansprechen kannst du sie dann über match.Groups[1] (Gruppe #0 ist der gesamte Match).


danielf - Fr 10.04.09 17:40

Hallo,

du kannst die Gruppen auch benennen, indem in der Klammer folgendes zu beginn schreibst ?<groupname>.

In deinem Beispiel:

Match match = Regex.Match(text, "<font style=\"color:#FFFFFF;\">(?<size>[0-9]+) KB</font></p>");

Auf eine Gruppe kannst du, wie Kha bereits sagte, anonym (über den index) zugreifen oder bei benannten Gruppen mit dem Gruppennamen.

string sFileSize = match.Groups["size"].Value;

Gruß Daniel


ebber - Fr 10.04.09 19:07

Danke.

So funktioniert es :)