未公开的字符类错误?

未公开的字符类错误?,第1张

未公开的字符类错误? TL; DR

你要:

.split("\], \[")`

每个方括号 转义 两次 -对于需要从其特殊含义中删除它们的每种上下文一次:一次在
正则表达式中
,然后在 Java
String中


Pattern#quote
当您需要对
整个模式 进行 字面 解释时,请考虑使用。


说明

String#split
有工作
正则表达式
,但
[
]
没有标准字符,正则表达式明智的:他们在这方面有特殊的意义。

为了使 它们脱离其特殊含义 并仅 匹配实际的方括号 ,需要对它们进行 转义 ,方法是在每个 方括号 前面加一个 反斜杠
-即使用

[
]

但是,在 Java
String中

它也不是标准字符,也需要 转义

因此,仅对进行拆分

[
,使用的 String
"\["
,您正在尝试获取:

.split("\], \[")

明智的选择

但是,在这种情况下,您不仅要在语义上 转义正则表达式中的几个特定字符 ,而且实际上希望 您的整个模式都按字面意义进行解释
:有一种方法可以做到这一点

Pattern#quote

用于表示:

您的模式中的元字符将没有任何特殊含义。

(来自上面链接的Javadoc)

在这种情况下,我建议您使用以下更明智和可读的方法:

.split(Pattern.quote("], ["))


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5489113.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存