我有一個這樣的字符串:如何通過空格拆分字符串,但在引號(java中)中轉義空格?
"Video or movie" "parent" "Media or entertainment" "1" "1" "1" "0" "0"
我想通過空間,但報價的內部空間應該被忽略分裂它。 所以分割後的字符串應該是:
"Video or movie"
"parent"
"Media or entertainment"
"1"
...
的語言是Java。
我有一個這樣的字符串:如何通過空格拆分字符串,但在引號(java中)中轉義空格?
"Video or movie" "parent" "Media or entertainment" "1" "1" "1" "0" "0"
我想通過空間,但報價的內部空間應該被忽略分裂它。 所以分割後的字符串應該是:
"Video or movie"
"parent"
"Media or entertainment"
"1"
...
的語言是Java。
這應該爲你做的工作:
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"
這是我需要的! – user3111525
看看這個問題。您可能可以調整其解決方案,以忽略引號中的空格而不是逗號。
Java: splitting a comma-separated string but ignoring commas in quotes
拆分通過「[] +」代替? (包括引號)
你可能會需要在缺少補充「的,如果他們不是在字符串的開頭或結尾
而是分裂的,只是比賽的事情,不是空間
Pattern p = Pattern.compile("\"(?:[^\"\\\\]|\\\\.)*\"|\\S+");
Matcher m = p.matcher(inputString);
while (m.find()) {
System.out.println(m.group(0));
}
您可以使用:
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"]
如何做一個'他說:\ 「你好\」「'? –