Entwickler-Ecke
Basistechnologien - Groups ohne Matchcollection?
BlackMatrix - So 13.12.09 20:08
Titel: Groups ohne Matchcollection?
Ich habe gerade einen Blackout, wie kann ich auf die Gruppen bei einem einzelnen Match draufzugreifen?
C#-Quelltext
1: 2: 3:
| ????? = Regex.Match(text, @"(?<Gruppe1>patter)" + @"(?<Gruppe2>patter)").Value string gruppe1 = ?????.Groups["Gruppe1"].Value; string gruppe2 = ?????.Groups["Gruppe2"].Value; |
Ich möchte keine Matchcollection erstellen, sondern nur Gruppen für den einfachen Match festlegen und dann zugreifen.
Ich kann kurz erklären was ich machen möchte, ich habe einen String, der wie folgt aussehen könnte "144 + 234 ="(zuvor mit Regex bestimmt) und nun möchte ich, dass mir der Compiler das Ergebnis liefert. Daher war mir das einfachste, dem Regex Gruppen zuzuordnen um dann die Werte einzeln in Integer zu konvertieren und den Operator gespeichert zu haben.
MfG
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
Christian S. - So 13.12.09 20:19
Regex.Match sollte doch eigentlich schon genau das richtige zurückgeben :gruebel:
P.S.: :welcome:
BlackMatrix - So 13.12.09 23:41
Verstehe ich irgendwie nicht ganz. Also ich hab folgenden Codeausschnitt:
C#-Quelltext
1:
| string beidegruppen = Regex.Match(text, @"(?<Gruppe1>patter)" + @"(?<Gruppe2>patter)").Value |
Jetzt will ich aber im nächsten Schritt nicht den string beidegruppen, sondern nur den string einer einzelnen Gruppe.
Angenommen mein string beidegruppen = "24 Stunden" und ich habe für 24 eine Gruppe erstellt und für Stunden eine Gruppe erstellt. Nun wollte ich eigentlich mit
C#-Quelltext
1:
| beidegruppe.Groups["Gruppe1"].Value |
zugreifen, aber das funktioniert nicht, denn String kennt keine Definition für Groups.
Wo ist mein Denkfehler?
Christian S. - So 13.12.09 23:44
Ich schrieb nicht Regex.Match.Value sondern Regex.Match.
BlackMatrix - So 13.12.09 23:50
An welcher Stelle meinst du jetzt? Den String habe ich ja vollständig schon als String, nun will ich ja da nur noch auf die einzelnen Gruppen zugreifen. Um die Regex in einen string zu bekommen muss ich doch erstmal Regex.Match.Value nehmen.
Christian S. - Mo 14.12.09 00:02
Herrje, ist das denn so schwierig? :gruebel:
Regex.Match liefert Dir ein Objekt der Match-Klasse. Das hat z.B. die Groups-Eigenschaft.
Wenn Du direkt auf Regex.Match.Value aufrufst, hast Du einen String, der kennt logischerweise keine Gruppen mehr.
Du solltest schon mal schauen, welchen Rückgabewert die Methoden haben, die Du benutzt :?
BlackMatrix - Mo 14.12.09 01:14
Du bist ein Schatz =) Es funktioniert. Danke
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!