除了从字符串controlchars删除非打印字符的utf8(Remove non printabl

2019-08-17 18:50发布

我有包含字符串文本,控制字符,数字,变音(德国)等UTF8字符。

我想去除所有UTF8字符,这是不是“语言的一部分”。 特殊字符,如(非完整列表) “:/ \ SSA; \ n \ t” 的都应该予以保留。

所以我要追加一个画面(可悲的是计算器将删除所有这些字符的链接 )。

有任何想法吗? 帮助非常感谢!

PS:如果有人不知道的黏贴服务不杀死那些特殊字符我会愉快地上传琴弦..我只是没能找到一个..

[编辑]:我觉得正则表达式“\ p {}抄送”是我想保留的所有字符。 难道这正则表达式来反转,从而不匹配这个表达式中的所有字符被退回?

Answer 1:

你已经找到了Unicode字符属性。

您可以反转,字符属性,通过改变领导“P”的情况下,

\p{L}所有字母匹配

\P{L}不具有财产信的所有字符匹配。

所以,如果你想\P{Cc}是你需要什么,然后\p{Cc}将匹配相反。

有关详细信息regular-expressions.info

我敢肯定\p{Cc}是接近你想要的东西,但要小心,它包括,例如标签(0×09),换行字符(0x0A)和回车符(0x0D)。

但是你可以创建自己的字符类,如下所示:

[^\P{Cc}\t\r\n]

这个类[^...]是一个否定的字符类,所以这会匹配一切,是不是“不控制字符”(双重否定,所以它匹配控制字符),而不是标签,CR和LF。



Answer 2:

您可以使用,

your_string.replaceAll("\\p{C}", "");


文章来源: Remove non printable utf8 characters except controlchars from String