¿Cuál es la expresión regular para extraer todos los emojis de una cadena?

Tengo una cadena codificada en UTF-8. Por ejemplo:

Thats a nice joke  

Tengo que extraer todos los emojis presentes en la oración. Y el emoji podría ser cualquier

Cuando esta oración se ve en la terminal usando el comandoless text.txt se ve como:

Thats a nice joke <U+1F606><U+1F606><U+1F606> <U+1F61B>

Este es el código UTF correspondiente para el emoji. Todos los códigos para emojis se pueden encontrar enemojitracker.

Con el fin de encontrar todas las ocurrencias, utilicé un patrón de expresión regular(<U\+\w+?>) pero no funcionó para la cadena codificada UTF-8.

El siguiente es mi código:

    String s="Thats a nice joke  ";
    Pattern pattern = Pattern.compile("(<U\\+\\w+?>)");
    Matcher matcher = pattern.matcher(s);
    List<String> matchList = new ArrayList<String>();

    while (matcher.find()) {
        matchList.add(matcher.group());
    }

    for(int i=0;i<matchList.size();i++){
        System.out.println(matchList.get(i));

    }

Estapdf diceRange: 1F300–1F5FF for Miscellaneous Symbols and Pictographs. Así que quiero capturar a cualquier personaje que se encuentre dentro de este rango.

Respuestas a la pregunta(2)

Su respuesta a la pregunta