繁体   English   中英

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

[英]JAVA - Regular Expressions : Unclosed Character Class

以下引发异常:

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

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

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

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

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

Pattern.matches(String regex, CharSequence input) 

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

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

从参考

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

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

我想应该是

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

最好用这种方式分解。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM