【发布时间】:2016-07-06 20:40:33
【问题描述】:
如果它们出现,我需要删除一些特定的“特殊”字符并用空字符串替换它们。 我目前遇到了正则表达式的问题,可能是 Java 转义。我无法将它们全部放在一起,它只是不起作用,我尝试了很多! T_T
目前我正在一个一个地做这有点傻,但现在至少它可以工作,就像这样:
public static String filterSpecialCharacters(String string) {
string = string.replaceAll("-", "");
string = string.replaceAll("\\[", "");
string = string.replaceAll("\\]", "");
string = string.replaceAll("\\^", "");
string = string.replaceAll("/", "");
string = string.replaceAll(",", "");
string = string.replaceAll("'", "");
string = string.replaceAll("\\*", "");
string = string.replaceAll(":", "");
string = string.replaceAll("\\.", "");
string = string.replaceAll("!", "");
string = string.replaceAll(">", "");
string = string.replaceAll("<", "");
string = string.replaceAll("~", "");
string = string.replaceAll("@", "");
string = string.replaceAll("#", "");
string = string.replaceAll("$", "");
string = string.replaceAll("%", "");
string = string.replaceAll("\\+", "");
string = string.replaceAll("=", "");
string = string.replaceAll("\\?", "");
string = string.replaceAll("|", "");
string = string.replaceAll("\"", "");
string = string.replaceAll("\\\\", "");
string = string.replaceAll("\\)", "");
string = string.replaceAll("\\(", "");
return string;
}
这些都是我需要删除的字符:
- [ ] ^ / , ' * : . ! > < ~ @ # $ % + = ? | " \ ) (
我显然遗漏了一些东西,我不知道如何将它们全部放在一行中。帮忙?
【问题讨论】:
-
放入一个字符类:
[<>!~@^()....] -
看起来很像
string = string.replaceAll("\\p{Punct}+", "")。见Java regex reference:\p{Punct}标点:!"#$%&'()*+,-./:;<=>?@[]^_`{|}~之一。但是,我发现您的类中定义的符号要少一些。