You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何检测字符串是否包含表情符号?

Java 识别字符串中的表情符号:更全面的正则方案

你之前用的正则只覆盖了部分Unicode表情区块,像🥰、🥲这类属于Supplemental Symbols and Pictographs(U+1F900-U+1F9FF)的表情没被包含,所以检测不到。

下面是覆盖绝大多数标准表情符号的正则表达式,包含了所有主流的Emoji相关Unicode区块,还支持组合表情的零宽连接符:

private static final String EMOJI_REGEX = "([\\u2600-\\u26FF]|[\\u2700-\\u27BF]|[\\uE000-\\uF8FF]|[\\u1F300-\\u1F5FF]|[\\u1F600-\\u1F64F]|[\\u1F680-\\u1F6FF]|[\\u1F700-\\u1F77F]|[\\u1F780-\\u1F7FF]|[\\u1F800-\\u1F8FF]|[\\u1F900-\\u1F9FF]|[\\u1FA00-\\u1FA6F]|[\\u1FA70-\\u1FAFF]|[\\u200D])";

正则范围说明

每个子范围对应一个Unicode表情/符号区块:

  • \u2600-\u26FF:杂项符号
  • \u2700-\u27BF:装饰符号
  • \uE000-\uF8FF:私有使用区(兼容部分旧表情)
  • \u1F300-\u1F5FF:杂项符号与象形文字
  • \u1F600-\u1F64F:表情符号
  • \u1F680-\u1F6FF:交通与地图符号
  • \u1F700-\u1F77F:炼金术符号
  • \u1F780-\u1F7FF:几何图形扩展
  • \u1F800-\u1F8FF:补充箭头-C
  • \u1F900-\u1F9FF:补充符号与象形文字(包含你提到的🥰、🥲)
  • \u1FA00-\u1FA6F:符号与象形文字扩展-A
  • \u1FA70-\u1FAFF:符号与象形文字扩展-B
  • \u200D:零宽连接符(用于拼接组合表情,如👨👩👧👦)

实用代码示例

直接用这个正则封装检测方法:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EmojiDetector {
    private static final String EMOJI_REGEX = "([\\u2600-\\u26FF]|[\\u2700-\\u27BF]|[\\uE000-\\uF8FF]|[\\u1F300-\\u1F5FF]|[\\u1F600-\\u1F64F]|[\\u1F680-\\u1F6FF]|[\\u1F700-\\u1F77F]|[\\u1F780-\\u1F7FF]|[\\u1F800-\\u1F8FF]|[\\u1F900-\\u1F9FF]|[\\u1FA00-\\u1FA6F]|[\\u1FA70-\\u1FAFF]|[\\u200D])";
    private static final Pattern EMOJI_PATTERN = Pattern.compile(EMOJI_REGEX);

    public static boolean containsEmoji(String input) {
        if (input == null || input.isBlank()) {
            return false;
        }
        Matcher matcher = EMOJI_PATTERN.matcher(input);
        return matcher.find();
    }

    public static void main(String[] args) {
        System.out.println(containsEmoji("Hello 🥰 World")); // 输出 true
        System.out.println(containsEmoji("纯文本内容")); // 输出 false
        System.out.println(containsEmoji("组合表情👨👩👧")); // 输出 true
    }
}

额外扩展

如果需要识别带有肤色修饰的表情(如👨🏿),可以在正则里加上肤色修饰符范围:|[\\u1F3FB-\\u1F3FF],更新后的正则会兼容这类带修饰的表情。

内容的提问来源于stack exchange,提问作者user24492691

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 21:13:16