Hallo,
ich habe in einem String eine Rechnung, die ich lösen will.
Als ersten hatte ich den RegEx:
Wie sollte der RegEx lauten? Oder gehe ich ganz falsch heran?
ich habe in einem String eine Rechnung, die ich lösen will.
Java:
String allowedOperators = "+-*/^!";
public double[] getNumbers(String input) {
Matcher matcher = Pattern.compile(...).matcher(input);
(...) // das ist nicht das Problem. Es klappt etc.
}
Java:
regex = RegExCollection.Decimal; // Decimal = "[+-]?[0-9]+(\\.([0-9]*))?".
// Klappt, nur leider nimmt das auch +-, also Vorzeichen mitrein. Wenn also eine Rechnung
// wie bspw. "3-45.0" ist, wird "3" und "-45.0" rausgefiltert
// Wie ich es aber möchte ist "3" und "45". Das minus wird dann später rausgeholt.
regex = RegExCollection.DecimalNoSymbol; // DecimalNoSymbol = "[0-9]+(\\.([0-9]*))?";
// Klappt auch nicht bei input = "3*-8".
regex = "^(" + RegExCollection.Decimal + ")|(...)"; // hier weiß ich nicht, wie ich
// sagen kann, dass ein Operator auf ein + oder - folgen kann. Normalerweise würde
// ja das einfach klappen, nur wird dann der Operator mit heraus "gefiltert"
Wie sollte der RegEx lauten? Oder gehe ich ganz falsch heran?