簡體   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