【发布时间】:2011-11-15 19:06:13
【问题描述】:
如何使用[ 作为分隔符拆分字符串?
String line = "blah, blah [ tweet, tweet";
如果我这样做了
line.split("[");
我收到一个错误
线程“主”java.util.regex.PatternSyntaxException 中的异常: 索引 1 附近的未封闭字符类 [
有什么帮助吗?
【问题讨论】:
如何使用[ 作为分隔符拆分字符串?
String line = "blah, blah [ tweet, tweet";
如果我这样做了
line.split("[");
我收到一个错误
线程“主”java.util.regex.PatternSyntaxException 中的异常: 索引 1 附近的未封闭字符类 [
有什么帮助吗?
【问题讨论】:
[ 是正则表达式中的保留字符,您需要对其进行转义,
line.split("\\[");
【讨论】:
只是逃避它:
line.split("\\[");
[ 是正则表达式中的一个特殊元字符,如果不在字符类中(例如您的情况),则需要对其进行转义。
【讨论】:
split 方法使用正则表达式进行操作。字符[ 在其中具有特殊含义;它用于表示[ 和] 之间的字符类。如果要使用文字左方括号,请使用 \\[ 将其转义为特殊字符。有两个斜杠,因为反斜杠也用作 Java 字符串文字中的转义字符。在 Java 代码中键入正则表达式可能会有些混乱。
【讨论】:
请使用"\\[" 而不是"["。
【讨论】:
[ 字符被解释为特殊的正则表达式字符,因此您必须对其进行转义:
line.split("\\[");
【讨论】:
如果必须在 [] 之间拆分,请尝试 str.split("[\\[\\]]");
【讨论】: