栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

未公开的字符类错误?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

未公开的字符类错误?

TL; DR

你要:

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

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


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


说明

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

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

[
]

但是,在 Java
String中

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

因此,仅对进行拆分

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

.split("\], \[")

明智的选择

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

Pattern#quote

用于表示:

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

(来自上面链接的Javadoc)

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

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


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496992.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号