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

如何从字符串中删除特殊字符?

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

如何从字符串中删除特殊字符?

这取决于你定义为特殊字符的内容,但是请尝试

replaceAll(...)

String result = yourString.replaceAll("[-+.^:,]","");

请注意,该^字符不能是列表中的第一个字符,因为你要么必须对其进行转义,否则将意味着“除这些字符外的任何字符”。

另一个注意事项:-字符必须是列表中的第一个或最后一个,否则你必须对其进行转义,否则它将定义一个范围(例如

:-,
,表示“
:to
范围内的所有字符”
,
)。

所以,为了保持一致性,而不是依赖于角色定位,你可能想逃避所有那些在正则表达式特殊含义的字符(下面的列表并不完整,所以要注意的其他人物像

(,{,$
等等) :

String result = yourString.replaceAll("[\-\+\.\^:,]","");

如果要摆脱所有标点和符号,请尝试使用此正则表达式:(

p{P}p{S}
请注意,在Java字符串中,你必须转义反斜杠:)
"\p{P}\p{S}"

如果可以精确定义字符串中应保留的内容,则第三种方法可能是这样的:

String  result = yourString.replaceAll("[^\w\s]","");

这意味着:替换所有不是单词字符(在任何情况下均为az,0-9或_)或空格的内容。

编辑:请注意,还有其他两种模式可能会有所帮助。但是,我无法全部解释它们,因此请查看regular-expressions.info的参考部分。

如Ray所建议的,这是“定义允许的字符”方法的限制性较小的替代方法:

String  result = yourString.replaceAll("[^\p{L}\p{Z}]","");

正则表达式匹配所有不是任何语言的字母和分隔符(空格,换行符等)的所有内容。请注意,你不能使用

[P{L}P{Z}]
(大写P表示不具有该属性),因为那意味着“不是字母或不是空格的所有内容”,几乎所有内容都匹配,因为字母不是空格,反之亦然。

有关Unipre的其他信息

某些unipre字符似乎由于不同的编码方式(例如单个代码点或代码点组合)而引起问题。有关更多信息



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

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

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