使用正则表达式删除java中转义的unicode字符串
我有下面这样的绳子使用正则表达式删除java中转义的unicode字符串,java,regex,unicode,escaping,Java,Regex,Unicode,Escaping,我有下面这样的绳子 "them coming \nLove it \ud83d\ude00" 我想删除此字符“\ud83d\ude00”。就这样吧 "them coming \nLove it " 如何在java中实现这一点?我尝试过下面这样的代码,但它不起作用 payload.toString().replaceAll("\\\\u\\b{4}.", "") 谢谢:)我想\\\u\\b{4}。不会工作,因为正则表达式将\ud83d视为一个符号�, 不是文本字符串。因此,为了匹配这种不需要
"them coming \nLove it \ud83d\ude00"
我想删除此字符“\ud83d\ude00”
。就这样吧
"them coming \nLove it "
如何在java中实现这一点?我尝试过下面这样的代码,但它不起作用
payload.toString().replaceAll("\\\\u\\b{4}.", "")
谢谢:)我想
\\\u\\b{4}。
不会工作,因为正则表达式将\ud83d
视为一个符号�, 不是文本字符串。因此,为了匹配这种不需要的(出于任何原因)unicode字符,最好排除您接受的字符(不希望替换),例如,对所有ASCII字符进行采样,并匹配所有其他字符(您希望替换的字符)。尝试:
[^\x00-\x7F]+
\x00-\x7F
包括Unicode
将导致:
他们来了喜欢它
但是,如果您使用国家字符、任何其他非ASCII符号(ś、ą、,♉,☹,等等) 我认为
\\\u\\b{4}.
不起作用,因为正则表达式将\ud83d
视为一个符号�, 不是文本字符串。因此,为了匹配这种不需要的(出于任何原因)unicode字符,最好排除您接受的字符(不希望替换),例如,对所有ASCII字符进行采样,并匹配所有其他字符(您希望替换的字符)。尝试:
[^\x00-\x7F]+
\x00-\x7F
包括Unicode
将导致:
他们来了喜欢它
但是,如果您使用国家字符、任何其他非ASCII符号(ś、ą、,♉,☹,等等) 为什么要删除它们?它们是一对代理,在星体层中形成一个有效的代码点。无论如何,不清楚是要删除文本中的代理项,还是要删除Java字符串中的所有Unicode转义序列。为什么要删除它们?它们是一对代理,在星体层中形成一个有效的代码点。无论如何,不清楚是要删除文本中的代理项,还是要删除Java字符串中的所有Unicode转义序列。