Сохраняйте смайлики, Java Regex - PullRequest
0 голосов
/ 19 марта 2012

У меня есть программа, которая фильтрует строку и сохраняет английские символы и смайлики. Я пытаюсь получить регулярное выражение, которое сохраняет смайлики как :),: D, :( и т. Д., Но вынимает одиночные ':' или '(' или ')' ... В основном я хочу ':' и ')' вместе я должен отфильтровать их .... В моей программе я могу сохранить смайлики, но я также получаю: а) вместе с ним .... Не могли бы вы мне помочь?

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

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 19 марта 2012

Вы пытаетесь использовать круглые скобки в квадратных скобках. Это не работает, так как внутри квадратных скобок скобки теряют свое особое значение.

Квадратные скобки определяют класс символов , который представляет собой один атом , а не последовательность атомов. Вместо этого вам следует просто использовать альтернативу с двумя ветвями: одну для : и одну для круглых скобок, D и т. Д. И использовать упреждения и оглядки в каждой ветви.

Более подробную информацию о синтаксисе регулярных выражений можно найти здесь .

Также вы можете рассмотреть некоторые более сложные смайлики, такие как :-).

...