在Java正则表达式中使用“ [”,“]”符号

时间:2019-05-19 09:04:37

标签: java

我想知道如何在正则表达式中使用“ [”,“]”符号,但出现编译时错误。有人可以帮我吗?

我必须在Java中拆分一个包含“ [”,“]”符号的字符串,但会出现编译时错误

String strng = "[11 11] 2000";
String ready[] = strng.split("[] ");
  

编译时错误:字符类未封闭;

3 个答案:

答案 0 :(得分:3)

您需要使用[A-Z]来转义这些字符,因为在正则表达式[ABC]中用于创建范围。
例如。 strng.split("\\[\\] "); 都是从A到Z的大写字符。
或者{{1}}正在检查您的字符串是否包含A,B或C这三个字符之一。

因此在Java中,请使用以下代码分割字符串:

{{1}}

答案 1 :(得分:1)

您的正则表达式必须构造为包含字符'['']'' '的字符类。由于字符类语法包括方括号,因此字符类内部的括号需要用斜杠转义。最后,由于转义序列被用作Java字符串的一部分,因此您需要转义每个反斜杠,如下所示:

String ready[] = strng.split("[\\[\\] ]");

答案 2 :(得分:0)

String strng = "[11 11] 2000"; 
String ready[] = strng.split("\\[|\\]");
System.out.println("ready = " + ready[1]);
  

就绪= 11 11