你要:
.split("\], \[")`
将 每个方括号 转义 两次 -对于需要从其特殊含义中删除它们的每种上下文一次:一次在
正则表达式中 ,然后在 Java
String中
。
Pattern#quote当您需要对
整个模式 进行 字面 解释时,请考虑使用。
说明
String#split有工作
正则表达式
,但
[并
]没有标准字符,正则表达式明智的:他们在这方面有特殊的意义。
为了使 它们脱离其特殊含义 并仅 匹配实际的方括号 ,需要对它们进行 转义 ,方法是在每个 方括号 前面加一个 反斜杠
-即使用
[和
]。
但是,在 Java
String中
,
因此,仅对进行拆分
[,使用的 String 是
"\[",您正在尝试获取:
.split("\], \[")
明智的选择
但是,在这种情况下,您不仅要在语义上 转义正则表达式中的几个特定字符 ,而且实际上希望 您的整个模式都按字面意义进行解释
:有一种方法可以做到这一点
Pattern#quote
用于表示:
您的模式中的元字符将没有任何特殊含义。
(来自上面链接的Javadoc)
在这种情况下,我建议您使用以下更明智和可读的方法:
.split(Pattern.quote("], ["))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)