java正则表达式,不能输入引号(单引号和双引号)以及特殊字符<、>、#和&

我写的是^[^`\"<>#&]*$ 但是貌似不对 求解啊。

//写了两个,不知你要的效果是什么

String s3 = "a'b\"c<d>e#f&g";

//替换所有非法字符
//结果:  a*b*c*d*e*f*g
System.out.println(s3.replaceAll("['\"<>#&]", "*"));

//替换所有非 非法字符
//结果:  *'*"*<*>*#*&*
System.out.println(s3.replaceAll("[^'\"<>#&]", "*"));

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-07
[^`\"<>#&] 这个就可以了,不用加前面的 和后面的
第2个回答  2014-01-10
你的主要错在这个*号上了,这个表示任意个,逻辑就不通了,可以用+
第3个回答  2014-01-10
特殊字符必须要用\转义
相似回答