Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用正则表达式删除java中转义的unicode字符串_Java_Regex_Unicode_Escaping - Fatal编程技术网

使用正则表达式删除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转义序列。