Имеется некоторое выражение (Например: 50,41+30,42 либо просто 50,41), то есть 2 числа (могут быть дробные/целые, положительные/отрицательные) и знак между ними (+/-), либо 1 число. Мне нужно вытащить числа и знак из этой строки и записать в разные переменные, пытаюсь делать это через группы, но что-то не получается:
string pattern = @"(-*[0-9]+,?[0-9]*)([\+\-]*)([0-9]+,?[0-9]*)";
Regex regex = new Regex(pattern);
Match match = regex.Match(f);
MessageBox.Show(match.Groups[1].Value);
MessageBox.Show(match.Groups[2].Value);
MessageBox.Show(match.Groups[3].Value);
Подскажите в чем проблема, спасибо.
Попробуйте этот шаблон:
(-?[\d]+(?:[,|\.][\d]+)?)(?:[ ]*([+|-|\*|/])[ ]*(-?[\d]+(?:[,|\.][\d]+)?))?
Вот такие строки захватывает (проверено здесь):
-50,41 + 30,42
50 + 30
-5 * -1
4/0.02
40
57,3
-50.05
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При попытке выполнить TakeOffline или BringOnline у ресурса кластера получаю следующую ошибку: