菜鸟提问:如何定义正则表达式中的* " 等特殊字符字符
我想写一个check name的方法,non_permit 是不允许出现的字符,permit是允许出现但是不能单独出现的字符, 但是如果这样定义 non_permit= "* " ";无法与m 中的字符匹配。如果定义non_permit= "\*\ " ";编译时就报错。我该怎么办啊?
private boolean checkName(GXItem it) {
String non_permit= "* " ";
String permit= ".- ";
Pattern p = Pattern.compile(non_permit);
Matcher m = p.matcher(it.getText());
boolean b = m.find();
if (b) {
error(it, "Invalid,please correct it ");
}
m.replaceAll(permit);
return!b;
}
------解决方案--------------------加\\
------解决方案--------------------转义呗
------解决方案-------------------- private static boolean checkName(String text) {
String non_permit = "\\* ";
String permit = ".- ";
Pattern p = Pattern.compile(non_permit);
Matcher m = p.matcher(text);
boolean b = m.find();
if (b) {
System.out.println( "error ");
}
m.replaceAll(permit);
return !b;
}