2012-01-20 101 views

回答

6

這應該爲你做的工作:

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); 
     } 

輸出:

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

這是我需要的! – user3111525

0

拆分通過「[] +」代替? (包括引號)

你可能會需要在缺少補充「的,如果他們不是在字符串的開頭或結尾

1

而是分裂的,只是比賽的事情,不是空間

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

您可以使用:

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

只要記住,這也捕捉""(空字符串)。

測試:

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)); 

OUTPUT: 「`得到逃過您的方案'」

Macthed: ["Video or movie"] 
Macthed: ["parent"] 
Macthed: ["Media or entertainment"] 
Macthed: ["1"] 
Macthed: ["1"] 
Macthed: ["1"] 
Macthed: ["0"] 
Macthed: ["0"] 
相關問題