Autor Beitrag
BlackMatrix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: So 13.12.09 20:08 
Ich habe gerade einen Blackout, wie kann ich auf die Gruppen bei einem einzelnen Match draufzugreifen?

ausblenden 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 user profile iconChristian S.: Code- durch C#-Tags ersetzt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 13.12.09 20:19 
Regex.Match sollte doch eigentlich schon genau das richtige zurückgeben :gruebel:

P.S.: :welcome:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
BlackMatrix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: So 13.12.09 23:41 
Verstehe ich irgendwie nicht ganz. Also ich hab folgenden Codeausschnitt:

ausblenden 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

ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 13.12.09 23:44 
Ich schrieb nicht Regex.Match.Value sondern Regex.Match.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
BlackMatrix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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 :?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
BlackMatrix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: Mo 14.12.09 01:14 
Du bist ein Schatz =) Es funktioniert. Danke