0

我有一种方法可以检查我的用户在评论文本字段中的输入。

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();
}

这对我有用,但我需要改变我的模式。用户应该能够键入除以下字符之外的任何字符:<> {} [].

如何设置模式以允许除上述之外的所有内容?

4

3 回答 3

4

[^characters to disallow].

^否定字符类,匹配除内部内容之外的任何内容。

于 2012-07-19T15:45:25.187 回答
4

试试这个:

[^\<\>\{\}\[\]]+

另一方面,您需要使用一个常量Pattern来避免每次都重新编译表达式,如下所示:

private static final Pattern MY_PATTERN = 
                                     Pattern.compile("^[^\\<\\>\\{\\}\\[\\]]+$");

并使用常量:

return MY_PATTERN.matcher(commentString).matches();
于 2012-07-19T15:45:32.220 回答
0

尚未对其进行测试,但格式为:字符串表达式 = "[^\\\<\\\>\\\{\\\}\\\[\\\]]+" ^ 符号适用于所有字符,但以下字符除外。

于 2012-07-19T15:45:48.663 回答