gutefrage.net, die Ratgeber Community
Login   |  Registrieren   |  Forum |  Richtlinien & FAQ

Hilfe bei RegEx (reguläre Ausdrücke in C sharp)

gefragt von FlashkickFlashkick am 04.11.2009 um 11:23 Uhr

Ich habe bereits die RegEx Formel erstellt mit einem:

Regex myRegex = new Regex("^ (?<Zahl1>-?[0-9]+(?:,[0-9]+)?) *(?<Operator>[+/-]) *(?<Zahl2>-?[0-9]+(?:,[0-9]+)?) *$");

Wer etwas Ahnung hat sieht das ich den Gruppen Namen gegeben habe!

Ich möcht enun irgendwie den Inhalt der einzelnen Gruppen in Variablen Speichern.

Das ganze ist für einen Taschenrechner gedacht de rmit Minuszahlen rechnen kann...

Also würde ich gerne die erste Gruppe "Zahl1" in meien Variable "double Zahl1" packen! Genauso den Operator in "char Operator"!

Wer kann mri bitte helfen!!!???

Frage beantworten

Hier finden Sie weitere Fragen zu den Themen:

programmieren x 793 programmierung x 401 Taschenrechner x 219 Visual studio x 21 c sharp x 14 csharp x 6 Regex x 6 reguläre ausdrücke x 1 Backtracking x 1

guest768
beantwortet von guest768 am 5. November 2009 18:36
0x
Die Antwort ist hilfreich? Dann klick mich!

Hallo,

die Bereiche, die mit dem Gruppennamen selektiert werden, kannst du mit Match.Groups aus der Eingabezeichenfolge extrahieren.

Direkt in eine Variable vom Typ 'char' oder 'double' würde ich es nicht unbedingt packen, weil es immer noch ein String mit eventuell mehreren Zeichen ist.

Um alle Matches durchzugehen und zu verarbeiten, kannst du eine MatchCollection verwenden:

string inputstring="0+3";

MatchCollection found_all = myRegex.Matches (inputstring);

foreach (Match foundmatch in found_all)

{ string operator = foundmatch.Groups["Operator"].Value;

[...]

}

PS: War im Prinzip die Umsetzung des Tipps von aloiskredo.


aloiskredo
beantwortet von aloiskredo am 4. November 2009 16:20
0x
Die Antwort ist hilfreich? Dann klick mich!

was genau ist die frage? da du den regex-ausdruck doch schon hast? meinst du du weisst nicht wie du das jetzt in variablen kriegst? du musst das nicht mir der Klasse RegEx machen, sondern "Match m = Regex.Match(s, "^ (?<Zahl1>-?[0-9]+(?:,[0-9]+)?) *(?<Operator>[+/-]) *(?<Zahl2>-?[0-9]+(?:,[0-9]+)?) *$". Dann in m.Groups findest du die Gruppen mi ihren Werten. (kann sein, dass du mit einer MatchCollection arbeiten musst, und dann halt "MatchCollection m = Regex.Matches ( ... , ....) )



Verwandte Fragen

Verwandte Fragen

Noch nicht die richtige Antwort? Dann hier in allen Fragen und Tipps suchen:




Die unter gutefrage.net angebotenen Dienste und Ratgeber Inhalte werden nicht geprüft. Die Richtigkeit der Inhalte wird nicht gewährleistet. Bitte lesen Sie hierzu auch unsere Rechtlichen Hinweise.