Java String.replaceAll具有不同的匹配&替换标准

时间:2013-07-09 22:50:49

标签: java regex string

我有这段代码:

String polynomial = "2x^2-4x+16";
String input = polynomial.replaceAll("[0-9a-zA-Z][-]", "+-");

问题是我不想实际替换[0-9a-zA-Z]字符。

以前,我曾使用polynomial.replace("-","+-");,但是输出的功率不正确。

新标准[0-9a-zA-Z][-]解决了负面问题;但是当我只需要在+之前插入-而不删除该字符时,它会替换一个字符。

如何使用删除的char替换此模式,如:

polynomial.replaceAll("[0-9a-zA-Z][-]", c+"+-");

其中'c'表示[0-9a-zA-Z] char。

1 个答案:

答案 0 :(得分:4)

您可以使用群组:

polynomial.replaceAll("([0-9a-zA-Z])[-]", "$1+-");

$1指代括号中的第一件事。

Java regex reference