【发布时间】:2012-05-18 20:16:52
【问题描述】:
public static final String specialChars1= "\\W\\S";
String str2 = str1.replaceAll(specialChars1, "").replace(" ", "+");
public static final String specialChars2 = "`~!@#$%^&*()_+[]\\;\',./{}|:\"<>?";
String str2 = str1.replaceAll(specialChars2, "").replace(" ", "+");
无论str1 是什么,我都希望删除除字母和数字以外的所有字符,并将空格替换为加号 (+)。
我的问题是如果我使用specialChar1,它不会删除一些字符,如;、'、",如果我使用specialChar2,它会给我一个错误:
java.util.regex.PatternSyntaxException: Syntax error U_REGEX_MISSING_CLOSE_BRACKET near index 32:
如何实现?我已经搜索过,但找不到完美的解决方案。
【问题讨论】: