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

从字符串中删除非ASCII不可打印字符

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

从字符串中删除非ASCII不可打印字符

您的要求不清楚。Java

String
中的所有字符都是Unipre字符,因此,如果将其删除,将留下一个空字符串。我假设您的意思是您要删除任何非ASCII,不可打印的字符。

String clean = str.replaceAll("\P{Print}", "");

此处,

p{Print}

代表可打印ASCII字符的POSIX字符类,同时
P{Print}
是该类的补充。使用此表达式,将所有
不可 打印的ASCII字符替换为空字符串。(额外的反斜杠是因为
在字符串文字中启动了转义序列。)


显然,所有输入字符实际上都是ASCII字符,它们表示不可打印或非ASCII字符的可打印编码。Mongo不会对这些字符串造成任何麻烦,因为它们仅包含普通的可打印ASCII字符。

这一切对我来说似乎有点可疑。我相信正在发生的事情是,数据确实确实包含不可打印和非ASCII字符,并且另一个组件(如日志记录框架)正在用可打印表示形式替换这些字符。在简单的测试中,您无法将可打印的表示形式转换回原始字符串,因此您错误地认为第一个正则表达式不起作用。

那是我的猜测,但是如果我误解了这种情况,而您确实确实需要删除文字

xHH
转义符,则可以使用以下正则表达式来实现。

String clean = str.replaceAll("\\x\p{XDigit}{2}", "");

Pattern
该类的API文档很好地列出了Java的正则表达式库支持的所有语法。要详细了解所有语法的含义,我发现Regular-
expressions.info网站非常有帮助。



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

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

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