Hallo seth,
erstmal Dank für Deine Hilfe, es geht nun - warum auch immer ;-)
gematcht wird also bloss "1234 und H". der rest bleibt einfach unangetastet.
Ja, das habe ich bemerkt. Also das er den ersten Buchstaben (H) immer überschireben hat
ja, das ersetzt "1234 und H" durch "H", wodurch du "Hallo Welt" erhaeltst.
Dann scheint das Ergebnis eher zufällig richtig zu sein? Ziel war es, den gesamten Text durch "HAllo Welt" zu erstzen. Ich habe nun einfach das Plus durch ein Mal (Stern) ersetzt (in Deiner verkürzten Schreibweise):
das Bringt:
rep = str.replaceAll("^([0-9]+)=(.*)", "$1");
--> 1234
rep = str.replaceAll("^([0-9]+)=(.*)", "$2");
--> Hallo welt
Das wäre erstemal das, was ich wollte - also auch das, wa mit split() im Array liefern würde, wenn ich am = trennen würde.
Warum es das nun ist (oder sein könnte?) versteh ich trotzdem nicht. Laut der Übersichtstabelle bedeutet .+ "Zusammensetzung aus beliebiges Zeichen und beliebig viele davon, jedoch mindestens eines" Demnach schlußfolgerte ich, nachdem =-Zeichen muss noch mindestens ein Zeichen kommen oder eben mehrere. Dem scheint dann nicht so zu sein?
oder ist nur replaceAll() ungünstig für mein Vorhaben?
kommt darauf, wie kompliziert der string bzw. dein genaues vorhaben ist.
So kompliziert, wie ich es hier beschrieb. Ich will beide Teile haben und in eine Hashtable als key-value-Paar haben. Gelesen wird der String aus einer Datei.
Mit freundlichem Gruß
Micha