Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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正则表达式_Java_Regex_Emoticons - Fatal编程技术网

保留表情符号,Java正则表达式

保留表情符号,Java正则表达式,java,regex,emoticons,Java,Regex,Emoticons,我有一个程序可以过滤字符串并保留英文字符和表情符号。我正试图得到一个正则表达式,它可以保存表情符号,比如:),:D,:(等等,但是去掉了单个的“:”或“(“或”)”…基本上我想要“:”和“)”,否则我需要过滤它们…在我的程序中,我可以保留表情符号,但我也得到:)以及它…你能帮我吗 String pattern = "[^\\w^\\s^(:))]"; Pattern p = Pattern.compile(pattern); Matcher m = p.matcher(text); text =

我有一个程序可以过滤字符串并保留英文字符和表情符号。我正试图得到一个正则表达式,它可以保存表情符号,比如:),:D,:(等等,但是去掉了单个的“:”或“(“或”)”…基本上我想要“:”和“)”,否则我需要过滤它们…在我的程序中,我可以保留表情符号,但我也得到:)以及它…你能帮我吗

String pattern = "[^\\w^\\s^(:))]";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(text);
text = m.replaceAll("");

谢谢您的帮助。

您试图在方括号内使用分组括号。这不起作用,因为方括号内的括号失去了它们的特殊含义

方括号定义的是单个原子,而不是原子序列。相反,您应该简单地使用两个分支选项:一个用于
,另一个用于括号,
D
等,并在每个分支中使用

您可以找到有关正则表达式语法的更多信息


此外,您可能会考虑一些更复杂的表情,如
:-)

请记住,我们都讨厌IM客户端和其他程序,用它们的图像替换代码片段或其他不常见的文本。最常见的是
8)
offtopic:@kirilloid不,最常见的是
(e)
(n)