У меня есть уравнение, записанное следующим образом:
1-я формула: (0.085+4.346*10^-5*((a^2)-(0^2))+0.0017228*(a-(0)))*2
Коэффициенты:
1) 0,085
2) 4,346 * 10 ^ 5
3) 0,0017228
2-я формула: ((0.208+0*d^3-0.00000434*d^2-0.00203*d)*2)
Коэффициенты:
1) 0,208
2) 0
3) -0,00000434
4) -0,00203
Из приведенной выше формулы мне нужны регулярные выражения, написанные на C # для извлечения коэффициентов, упомянутых выше.
Я попробовал регулярное выражение: "[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?"
возвращает хороший коэффициент s, но не «0», как указано во 2-й формуле сверху.
Я попробовал следующий код:
string p = @"((0.208+0*d^3-0.00000434*d^2-0.00203*d)*2)";
var result = Regex.Matches(p, @"[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?").Cast<Match>().Select(m => m.Value).Where((x, i) => i % 2 == 0).ToList();
foreach(string item in result)
{
Console.WriteLine(item);
}
Результат из вышеприведенного кода:
0,208
-0,00000434
-0,00203
(0 отсутствует здесь как 2-й коэффициент, который требуется.)