通过正则表达式找到系数?

时间:2015-04-11 11:51:30

标签: c# asp.net regex

我想要正则表达式来查找等式中的系数,幂和常量,例如:{/ 1}:

ax^3+bx^2+cx+d=0

我尝试了2x^3+4x^2-6x+1=0 的权力,我不知道如何在x之前找到十进制数作为系数

我正在使用C#

2 个答案:

答案 0 :(得分:1)

您可以使用@"(-?\d+)x\^?(\d+)?"

匹配组1 =>系数

匹配组2 =>功率

请参阅DEMO进行解释和探索。

答案 1 :(得分:0)

Regexp表达式还应该知道系数:

var pattern = @"(-?\d+)x\^?(\d+)?";
var formula = "2x^3+4x^2-6x+1=0";

foreach(Match match in new Regex(pattern).Matches(formula)) {
  Console.WriteLine("Coefficent \"{0}\"\tPower \"{1}\"",
       match.Groups[1].Value, match.Groups[2].Value);
}

输出结果为:

Coefficent "2"  Power "3"
Coefficent "4"  Power "2"
Coefficent "-6" Power ""

请注意:如果您想(a)接受公式中的空白字符或(b)非整数系数,则必须优化Regexp模式。