我想知道如何在正则表达式中使用“ [”,“]”符号,但出现编译时错误。有人可以帮我吗?
我必须在Java中拆分一个包含“ [”,“]”符号的字符串,但会出现编译时错误
String strng = "[11 11] 2000";
String ready[] = strng.split("[] ");
编译时错误:字符类未封闭;
答案 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