用括号进行分割

21

如何使用[作为分隔符来拆分字符串?

String line = "blah, blah [ tweet, tweet";

如果我执行

line.split("[");

我遇到了一个错误

在主线程中发生异常"Exception in thread "main" java.util.regex.PatternSyntaxException: 在索引1附近未关闭的字符类 [

有什么帮助吗?

6个回答

61

[在正则表达式中是一个保留字符,您需要转义它。

line.split("\\[");

6

只需转义:

line.split("\\[");

[ 是正则表达式中的特殊元字符,如果不在字符类中(例如您的情况),需要进行转义。


6

split方法使用正则表达式。字符[在其中具有特殊含义;它用于表示在[]之间的字符类。如果您想使用文字形式的左方括号,请使用\\[将其作为特殊字符进行转义。这里有两个反斜杠,因为在Java字符串字面值中,反斜杠也用作转义字符。在Java代码中输入正则表达式可能会有些令人困惑。


4
[这个字符被解释为一个特殊的正则表达式字符,因此您需要对其进行转义:

line.split("\\[");


3

请使用"\\["代替"["


0
如果必须在[]之间拆分,则尝试使用 str.split("[\\[\\]]");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接