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!!!???
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.
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 ( ... , ....) )