0

以下是抛出异常:

Pattern.matches(""+input.charAt(i),"\\s");

java.util.regex.PatternSyntaxException: 
Unclosed character class near index 0.

我不明白为什么。我匹配的文本是否也需要转义字符?

工作区的屏幕截图以防万一。

4

5 回答 5

5

您以错误的顺序获取参数(来自文档

Pattern.matches(String regex, CharSequence input) 
于 2012-10-21T19:15:07.607 回答
2

您使用它的方式似乎是错误的。你应该做

 Pattern p = Pattern.compile("[ \\t\\n]");
 Matcher m = p.matcher(""+input.charAt(i));
 boolean b = m.matches();

从参考

于 2012-10-21T19:15:44.060 回答
1

空格有一个特殊的类。您的代码可以简化为:

Pattern.matches("\\s", <your_input>);
于 2012-10-21T19:14:15.767 回答
1

我想应该是

Pattern.matches("\\s",String.valueOf(input.charAt(i));
于 2012-10-21T19:19:00.383 回答
0

最好这样拆开......

Pattern pattern = Pattern.compile("\\s");

Matcher matcher = pattern.matcher("Your_Source_String");
于 2012-10-21T19:19:00.833 回答