2012-01-20 17 views

risposta

6

questo dovrebbe fare il lavoro per voi:.

final String s = "\"Video or movie\" \"parent\" \"Media or entertainment\" \"1\" \"1\" \"1\" \"0\" \"0\""; 
     final String[] t = s.split("(?<=\") *(?=\")"); 
     for (final String x : t) { 
      System.out.println(x); 
     } 

uscita:.

"Video or movie" 
"parent" 
"Media or entertainment" 
"1" 
"1" 
"1" 
"0" 
"0" 
+0

Questo è quello che mi serviva! – user3111525

0

Split da "[] +" invece? (Comprese le virgolette)

Sei probabilmente bisogno di aggiungere in mancante "s 'se non sono all'inizio o alla fine della stringa

1

Invece di scissione, basta abbinare cose che non sono spazi

Pattern p = Pattern.compile("\"(?:[^\"\\\\]|\\\\.)*\"|\\S+"); 
Matcher m = p.matcher(inputString); 
while (m.find()) { 
    System.out.println(m.group(0)); 
} 
4

È possibile utilizzare:

Patter pt = Pattern.compile("(\"[^\"]*\")"); 

Basta tenere a mente che questa cattura anche "" (stringa vuota).

TEST:

String text="\"Video or movie\" \"parent\" \"Media or entertainment\" \"1\" \"1\" \"1\" \"0\" \"0\""; 
Matcher m = Pattern.compile("(\"[^\"]*\")").matcher(text); 
while(m.find()) 
    System.out.printf("Macthed: [%s]%n", m.group(1)); 

USCITA: "` ottenere sfuggito nello scenario `"

Macthed: ["Video or movie"] 
Macthed: ["parent"] 
Macthed: ["Media or entertainment"] 
Macthed: ["1"] 
Macthed: ["1"] 
Macthed: ["1"] 
Macthed: ["0"] 
Macthed: ["0"] 
Problemi correlati