Regex für String.split(regex)

anti43

Grünschnabel
Hi!

Ich suche eine regex um folgenden String in passende Wörter zu splitten:

123032 "Dieser ""Satz"" gehört zusammen" "das ist schwer" "" "" "" "nochwas" ""

gewünschtes Resultat:

[123032] [Dieser "Satz" gehört zusammen] [das ist schwer] [] [] [] [nochwas] []

das Problem ist offensichtlich :-/ Quote ist sowohl String identifier als auch sein eigener Escape Character, und Leerzeichen ist der Feldtrenner..

Hat irgendwer ne sinnvolle Lösung für sowas?

Gruss

Andreas
 
alternativ wäre es schon gut, wenn mir jemand sagen könnte wie ich ein whitespace finde welches NICHT innerhalb von 2 " ist..

also nicht

"de asd"

splittet aber

"hh" "bb"
 
oder umgekehrt:

ein double quoted string mit whitespace daneben:

Code:
String re1="(\\s+)(\".*?\")(\\s+)";

aber wie erwisch ich dann das erste Wort in einer Zeile? Da ist ja kein WS links daneben..
 
Hi.

Solche kontextsensitiven Grammatiken lassen sich ganz schlecht mit reg. Ausdrücken (trotz Lookhead / Lookbehind usw.) ausdrücken (da reg. Ausdrücke äquivalent zu kontextfreien Grammatiken sind).

Schreibe dir besser einen kleinen Parser oder verwende eine CSV Bibliothek (z.B. OpenCSV http://opencsv.sourceforge.net/)

Gruß
 
Zurück