保留表情符号,Java Regex

时间:2012-03-18 21:23:26

标签: java regex emoticons

我有一个过滤字符串并保留英文字符和表情符号的程序。我试图得到一个正则表达式,保持表情符号像:),:D,:(等但取出单个':'或'('或')'...基本上我想要':'和')'另外我需要过滤它们....在我的程序中,我能够保留表情符号,但我也得到了:和)以及它......你可以帮助我吗?

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

方括号定义character class,它是单个atom,而不是原子序列。相反,您应该只使用两个分支替代方案:一个用于:,一个用于括号,D等,并在每个分支中使用look-ahead and look-behind

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

此外,您可以考虑更复杂的表情符号,例如:-)