Я ненавижу задавать такие глупые вопросы, но почему мой код не выполняет то, что я ожидаю?
Java-код в основном методе:
String s = "\"The fat-dog [ruffus] @nd the stupid-cat [*mewzer*] don't like each other!\"";
String[] tokens = s.replaceAll("[\\x27]+", "").replaceAll("[^a-zA-z_\\x2D]+", " ").replaceAll("\\s+", " ").trim().split(" ");
System.out.println(s);
for (String t : tokens)
System.out.println("Token: " + t);
Это печатает:
"Толстяк [ruffus] @nd глупый кот [ mewzer ] не любят друг друга!"
Token: The
Token: fat-dog
Token: [ruffus]
Token: nd
Token: the
Token: stupid-cat
Token: [
Token: mewzer
Token: ]
Token: dont
Token: like
Token: each
Token: other
Что в основном верно, кроме этих чертовых скобок! Разве они не должны быть заменены выражением "[^a-zA-z_\\x2D]+"
? Я даже попытался добавить replaceAll("\\[\\]"," ")
, а затем replaceAll("\\x5B\\x5D"," ")
безрезультатно.
Как мне избавиться от этих скобок? Что мешает им быть замененными в трех заменах всех утверждений, которые я только что упомянул?