我有这段代码
public String StripText(String name){
String stripped = name.replaceAll("/:!@#$%^&*()<>+?\"{}[]=`~;", "");
return stripped;
}
哪个不起作用。我希望它返回一个字符串,删除像“/”“:”“!”这样的字符的出现。 “@”等等。
e.g。如果我给它一个字符串“puppy :) love”,我希望它返回一个只包含“puppylove”的字符串。
答案 0 :(得分:2)
你只需要将所有字符放在character class内。使用“字符类”,也称为“字符集”,你可以告诉正则表达式引擎只匹配几个字符中的一个。只需将要匹配的字符放在方括号中即可。
String stripped = name.replaceAll("[/:!@#$%^&*()<>+?\"{}\\[\\]=`~;]", "");
您还需要转义字符类中存在的[
,]
个字符,否则它会将第一个]
视为charclass的结尾。
示例:强>
String name = "[{puppy:)love}]";
String stripped = name.replaceAll("[/:!@#$%^&*()<>+?\"{}\\[\\]=`~;]", "");
System.out.println(stripped);
<强>输出:强>
puppylove
答案 1 :(得分:1)
您需要转义所有特殊字符或在代码中使用[]
〜;] + [/:!@#$%^&*()<>+?\"{}[]=