我想检查一个字母是否是表情符号。我发现了一些类似的问题,并找到了这个正则表达式:
private final String emo_regex = "([\\u20a0-\\u32ff\\ud83c\\udc00-\\ud83d\\udeff\\udbb9\\udce5-\\udbb9\\udcee])";
但是,当我在如下句子中执行以下操作时:
for (int k=0; k<letters.length;k++) {
if (letters[k].matches(emo_regex)) {
emoticon.add(letters[k]);
}
}
它不会添加任何带有任何表情符号的字母。我也试过 aMatcher
和 a Pattern
,但这也不起作用。正则表达式有问题还是我的代码中遗漏了一些明显的东西?
这是我收到这封信的方式:
sentence = "Jij staat op 10 😂"
String[] letters = sentence.split("");
最后一个😂应该被识别并添加到 emoticon
您可以使用emoji4j库。以下应该可以解决问题。
String htmlifiedText = EmojiUtils.htmlify(text); // regex to identify html entitities in htmlified text Matcher matcher = htmlEntityPattern.matcher(htmlifiedText); while (matcher.find()) { String emojiCode = matcher.group(); if (isEmoji(emojiCode)) { emojis.add(EmojiUtils.getEmoji(emojiCode).getEmoji()); } }