簡體   English   中英

使用正則表達式刪除Java中的轉義unicode字符串

[英]Remove escaped unicode string in java with regex

我有下面的字符串

"them coming \nLove it \ud83d\ude00"

我要刪除此字符"\?\?" 所以會的

"them coming \nLove it "

如何在Java中實現呢? 我已經嘗試過使用下面的代碼,但無法正常工作

payload.toString().replaceAll("\\\\u\\b{4}.", "")

謝謝 :)

我認為\\\\\\\\u\\\\b{4}. 將不起作用,因為正則表達式將\?視為符號......,而不是文字字符串。 因此,要匹配這種不需要的(出於任何原因)unicode字符,最好排除您接受(不想替換)的字符,因此,對於所有ASCII字符,請與其他所有字符(要替換的字符)匹配。 嘗試:

[^\x00-\x7F]+

\\x00-\\x7F包含Unicode Basic Latin塊

String str = "them coming \nLove it \ud83d\ude00";
System.out.println(str.replaceAll("[^\\x00-\\x7F]+", ""));

結果將是:

他們來了
愛它

但是,如果使用國家字符,其他任何非ASCII符號(ś,±,♉,☹等),您都會遇到問題。

暫無
暫無

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

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