如何使用[
作为分隔符来拆分字符串?
String line = "blah, blah [ tweet, tweet";
如果我执行
line.split("[");
我遇到了一个错误
在主线程中发生异常"Exception in thread "main" java.util.regex.PatternSyntaxException: 在索引1附近未关闭的字符类 [
有什么帮助吗?
[
在正则表达式中是一个保留字符,您需要转义它。
line.split("\\[");
只需转义:
line.split("\\[");
[
是正则表达式中的特殊元字符,如果不在字符类中(例如您的情况),需要进行转义。
split
方法使用正则表达式。字符[
在其中具有特殊含义;它用于表示在[
和]
之间的字符类。如果您想使用文字形式的左方括号,请使用\\[
将其作为特殊字符进行转义。这里有两个反斜杠,因为在Java字符串字面值中,反斜杠也用作转义字符。在Java代码中输入正则表达式可能会有些令人困惑。
[
这个字符被解释为一个特殊的正则表达式字符,因此您需要对其进行转义:
line.split("\\[");
请使用"\\["
代替"["
。
str.split("[\\[\\]]");
。