selfhtml.de - Alles für den Webmaster!

 

Empfehlung:

wix.com

Kostenlose Homepage

Besuchen Sie auch:

Jobs:

regex zum Splitten einer Zeichenkette

Autor: Rilji
Datum: 25.03.2009 17:01:32

Hi,

also mein ist Problem: ich habe einen String den ich mit der Methode split spliten möchte und zwar so das er bei einen Tab und einem Whitespace gesplittet wird, aber nicht bei einem Komma Whitespace Komma oder ein Komma Whitespace oder ein Whitespace Komma.

Mal n Beispiel:
"Das ist ein kurzes Beispiel"  soll zu  "Das" "ist" "ein" "kurzes" "Beispiel"  werden

"Das, ist ein , kurzes,Beispiel"  soll zu  "Das, ist" "ein , kurzes Beispiel" werden

Dazu habe ich mir Folgendes ausgedacht:
String[] splitTest = testtest.split("[t]|([^,][\ ][^,])")

Das funktioniert eigentlich soweit ganz gut, allerdings werden jetzt immer wenn kein Komma vor einem Whitespace ist (der Satz da also getrennt wird) das Zeichen davor und danach abgeschnitten.

Beispiel:
"Das ,ist, ein, kurzes Beispiel"  wird zu  "Das ,ist, ein, kurze" "eispiel"

Kann mir da vielleicht einer weiterhelfen? Wäre echt klasse.

LG,
Rilji



Re: regex zum Splitten einer Zeichenkette

Autor: xabbuh
Datum: 22.04.2009 14:41:15

Ich würde mit der Klasse Pattern und deren split()-Methode arbeiten:

String haystack = "Das, ist ein , kurzes,Beispiel";
String pattern = "(?<!,)\s(?!,)";

Pattern p = Pattern.compile(pattern);

System.out.println("Zeichenkette: " + haystack);
System.out.println("Suchmuster: " + pattern);

for(String s : p.split(haystack)) {
    System.out.println(s);
}