Java Regex replaceAll()

时间:2015-03-22 00:05:58

标签: java regex parsing

以下代码通过删除变量项,取幂运算符和degree来解析多项式表达式,以便确定多项式的系数。

代码:

String expression = "x^10 + 6x^2 + 9";

expression = expression.replaceAll("(\\^\\d)?", ""); //fix
expression = expression.replaceAll("x", "(1)");

System.out.print(expression); 

结果:

(1)0 + 6(1) + 9 //intended result: (1) + 6(1) + 9

如果术语的程度> = 10,则该方法将简单地移除该学位的第一个数字。有没有办法替换整个号码(在这种情况下,10)。

3 个答案:

答案 0 :(得分:2)

这应涵盖多个数字的数字。 (+ d之后)

    String expression = "x^10 + 6x^2 + 9";

    expression = expression.replaceAll("(\\^\\d+)?", ""); //fix
    expression = expression.replaceAll("x", "(1)");

    System.out.print(expression); 

答案 1 :(得分:1)

只需在+之后加\d +表示一次或多次重复。

expression = expression.replaceAll("(\\^\\d)?", ""); //fix

变为

expression = expression.replaceAll("(\\^\\d+)?", ""); //fix

答案 2 :(得分:0)

您的正则表达式只选择一位数。添加+以选择至少一位数:\\^\\d+

相关问题