我有一种方法可以在评论文本字段中检查我的用户输入。
public boolean isValidComment(String commentString) {
String expression = "[a-zA-Z0-9_ ]+";
CharSequence inputStr = commentString;
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(inputStr);
return matcher.matches();
}
这适合我,但我需要改变我的模式。用户应该能够键入任何字符,但这些字符除外:<> {} []
。
如何设置模式以允许除上述之外的所有内容?
答案 0 :(得分:4)
[^characters to disallow]
。
^
否定了字符类,除了里面的内容之外什么都匹配。
答案 1 :(得分:4)
试试这个:
[^\<\>\{\}\[\]]+
另一方面,你需要使用Pattern
的常量来避免每次都重新编译表达式,如下所示:
private static final Pattern MY_PATTERN =
Pattern.compile("^[^\\<\\>\\{\\}\\[\\]]+$");
并使用常量:
return MY_PATTERN.matcher(commentString).matches();
答案 2 :(得分:0)
尚未测试,但格式为:
字符串表达式= "[^\\\<\\\>\\\{\\\}\\\[\\\]]+"
^符号适用于所有字符,但以下是。