JAVA - 正则表达式:未闭合字符类

时间:2012-10-21 19:11:24

标签: java regex

以下是抛出异常:

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

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

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

Screenshot工作空间以防万一。

5 个答案:

答案 0 :(得分:5)

您输入的参数顺序错误(来自documentation

Pattern.matches(String regex, CharSequence input) 

答案 1 :(得分:2)

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

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

<强> From the reference

答案 2 :(得分:1)

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

Pattern.matches("\\s", <your_input>);

答案 3 :(得分:1)

我想它应该是

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

答案 4 :(得分:0)

最好以这种方式分手......

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

Matcher matcher = pattern.matcher("Your_Source_String");