我想用Java语言来识别一个字符串类型的数据是否包含emoji。
我使用“[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]”常规来查找有表情符号的字符串,但找到它不全面,部分表情无法识别。有没有更全面的正则表达式来解决这个问题。比如🥰🥲表情符号无法与我的正则匹配
你可以尝试一下 Java Emoji 库吗?
Gradle Kotlin DSL
implementation("net.fellbaum:jemoji:1.4.0")
Maven
<dependency>
<groupId>net.fellbaum</groupId>
<artifactId>jemoji</artifactId>
<version>1.4.0</version>
</dependency>
示例1:检查提供的字符串是否包含表情符号
boolean test4= EmojiManager.containsEmoji("like 🥰🥲 emoji");//true
boolean test1= EmojiManager.containsEmoji("Hello 😀 World");//true
boolean test2= EmojiManager.containsEmoji("This string contains beans 🫘");//true
boolean test3= EmojiManager.containsEmoji("Hello World");//false
示例2:检查提供的字符串是否是表情符号
boolean isEmoji=EmojiManager.isEmoji("😀");//true
示例 3:按照出现的顺序从字符串中提取所有表情符号
List<Emoji> emojis=EmojiManager.extractEmojisInOrder("Hello 😀 World 👍"); // [😀, 👍]