2015-10-17 156 views
0

我想弄清楚如何提取例如-13,作为多项式中的负值,例如, -13x^2+2-12x^4。到目前为止,我已经成功地拿走了权力。此外,我的解决办法想出了这个:如何从多项式字符串中提取数字(包括+和 - 号)

/\(+)(-)\d{1,4}/g 

我知道这是错的语法,但我不知道如何表示+-与以下号码去。 如果你能告诉我如何计算下一个x就好像一个普通/被搜索的短语的结尾,我不确定这个词是否会很好。你知道,如果它是-3x ^和点是提取-3,那么它应该像/\ + or - \/d{1,4} x_here/g

+2

'(+ | - )'........... – zerkms

+0

@zerkms取决于我是使用新的RegExp()类还是普通的=/things /模式,因为现在它看起来像这样: sc = str_input.match'(/(+ | - )\ d {1,4}/g)'指出错误...无效的语法,确实 – KDX2

+0

Escape'+'as '\ +' – zerkms

回答

3
var formula = '-13x^2+2-12x^4'; 

formula.match(/[+-]?\d{1,4}/g); 

返回:

["-13", "2", "+2", "-12", "4"] 

如果您希望将数字组织成系数和权力,可以采用以下方法:

var formula = '-13x^2+2-12x^4'; 

function processMatch(matched){ 
    var arr = []; 
    matched.forEach(function(match){ 
     var vals = match.split('^'); 
     arr.push({ 
      coeff: parseInt(vals[0]), 
      power: vals[1] != null ? parseInt(vals[1]) : 0 
     }) 
    }) 
    console.log(arr); 
} 

processMatch(formula.match(/[+-]?\d+x\^\d+|[+-\s]\d[+-\s]/g)) 

/* console output: 
var arr = [ 
    { coeff: -13, power: 2 }, 
    { coeff: 2, power: 0 }, 
    { coeff: -12, power: 4 }   
];*/ 
3

我想你想:

var str = '2x^2-14x+5'; 
var re = /([+-]?\d{1,4})/g; 
var result = str.match(re); 
相关问题