簡體   English   中英

從String中刪除除控制符之外的不可打印的utf8字符

[英]Remove non printable utf8 characters except controlchars from String

我有一個包含文本,控制字符,數字,變音符號(德語)和其他utf8字符的字符串。

我想刪除所有不是“語言的一部分”的utf8字符。 特殊字符如(非完整列表)“:/ \\ßä,; \\ n \\ t”都應保留。

遺憾的是,stackoverflow刪除了所有這些字符,因此我必須附加圖片( 鏈接 )。

有任何想法嗎? 非常感謝幫助!

PS:如果有人知道一個不會殺死那些特殊字符的粘貼服務,我會很樂意上傳字符串..我只是找不到一個...

[編輯]:我認為正則表達式“\\ P {Cc}”是我想要保留的所有字符。 這個正則表達式是否可以反轉,以便返回與此正則表達式不匹配的所有字符?

您已經找到了Unicode字符屬性。

您可以通過更改前導“p”的大小寫來反轉字符屬性

例如

\\p{L}匹配所有字母

\\P{L}匹配所有沒有屬性字母的字符。

因此,如果您認為\\P{Cc}是您所需要的,那么\\p{Cc}將與之相反。

有關regular-expressions.info的更多詳細信息

我很確定\\p{Cc}接近你想要的,但要小心,它確實包括,例如標簽(0x09),換行符(0x0A)和回車符(0x0D)。

但是你可以創建自己的角色類,如下所示:

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

這個類[^...]是一個否定的字符類,所以這將匹配所有不是“非控制字符”(雙重否定,因此它匹配控制字符),而不是tab,CR和LF。

您可以使用,

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM