Ive vor recht eine ähnliche Frage gestellt und implementiert diese regex: "(?<!^)(?=\\D)|(?<=\\D)"
aufzuspalten ein String
wie folgt aus:Regex für die Spaltung bei jedem Charakter, sondern halten Zahlen und Dezimalzahlen zusammen
String input = "x^(24-3x)";
String[] signs = input.split("regex here");
for (int i = 0; i < signs.length; i++) {
System.out.println(signs[i]); }
mit dem Ausgang ergibt: "x", "^", "(", "24", "-", "3", "x", ")"
Jetzt muss ich einen String unter den gleichen Bedingungen aufteilen, aber auch Dezimalzahlen zusammenhalten. ATM, ein Eingang wie (0.5)
ergibt: "(", "0", ".", "5", ")"
aber ich brauche die Dezimalzahl, um in einem gruppiert zu bleiben string
wie: "(", "0.5", ")"
. Danke
Statt Rutschen, warum suchen nicht nach etwas wie '\ d + | \ w + | [^() + - * /] '? –
Sie könnten eine Antwort von jemandem bekommen ... aber ich habe ein sehr starkes Gefühl, dass Sie an falscher Stelle suchen. Wenn Sie es später mit verschachtelten Klammern usw. auswerten möchten, sollten Sie es mit einem geeigneten Grammatik-Parser statt mit Regex machen. Es ist etwas mehr Arbeit am Anfang, aber zahlt sich sehr bald und ermöglicht es Ihnen, für zukünftige Anforderungen gerecht zu werden –
@ ArturBiesiadowski, Regex ist eine vollkommen gültige Möglichkeit, einen Eingabestream für einen Grammatik-Parser zu tokenisieren. So funktioniert schließlich die gute alte 'lex'. –