Reguläre Ausdrücke mit sehr variablen Eigenschaften

Elron01

Mitglied
Guten Tag.

Ich bekomme in einer Methode einen String übergeben, der dann in viele Teilstrings getrennt werden soll. pro Teilstring sind Koordinaten, mehrere Zahlen und ein Name enthalten.
Dieser Name kann aber sehr variabel sein. Als Bsp: "22", "Mein Name", " §9:142:6 2,4" und noch viel mehr.
Also Bsp. hier ein übergebener String:
Java:
9:142:6	95	15 W	67    	33     9:142:8	95	18 B	82    	34     9:258:1	77	6 S	6    	26     9:258:2	87	6 B	6    	28     9:258:3	82	6 W	6    	26
In diesen Beispielen ist der Name jeweils nur ein Buchstabe, aber das ist nur für Testzwecke.

Ein Teilstring soll dann also folgendermaßen aussehen:

Java:
  9:142:6	95	15 Name	67    	33


Und davon werden dann halt ca 100 - 200 in dem übergebenen String enthalten sein.
Der reguläre Ausdruck sieht bisher so aus:

Java:
Pattern patter = Pattern.compile(" [0-9]{1,3}:[0-9]{1,3}:[0-9]{1,3}	[0-9]{1,5}	[0-9]{1,5} \\w{1,50}	[0-9]{1,5}    	[0-9]{1,5}");

Nun habe ich ein Problem:

Ist es überhaupt möglich, für solch variable namen ein brauchbares Muster anzulegen?
(Mit dem \\w{1-50} wollte ich das Muster erstmal testen, bin also von einem zusammenhängenden Namen ausgegangen)
Als einziges würde mir einfallen, dort das Tabulatorzeichen als erstes Zeichen nach dem Namen zu definieren, aber in meinen Lernunterlagen http://openbook.galileocomputing.de hab ich da nix gefunden, wie ich das vernünftig darstellen kann.

Hab noch
Java:
\t
gefunden, und mit nicht gierigen Operatoren würde sonst ja
Java:
\p{Graph}*\\t?
gehen, aber es darf halt nur Tab gewertet werden und nicht das Leerzeichen.
 
Zuletzt bearbeitet:
Warum fallen einem eigene Fehler immer erst auf, wenn man den Posten-Button gedrückt hat??? 😳😳😳

edit:
Fehler sind beseitigt.
 
Zuletzt bearbeitet:
Naja, werde es nun so lösen, dass ich anstatt mit pattern zu arbeiten, die chars einzeln rausziehe und die Werte dann gleich übertrage.
 

Zurück
Oben