android - 如何从 Flutter 中的字符串中提取表情符号?

标签 android regex flutter dart

我需要从字符串中提取表情符号,用于我正在 Flutter 中开展的副项目

输入: “大家好🥺🥺🥺”

输出: “🥺🥺🥺”

如何实现这一目标?

这是我迄今为止根据 this 尝试过的发布

var emojiRegex = RegExp(
  "r'(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])'");

getEmojis(String message) {
  print("EXTRACTING EMOJI");
  var output = message.replaceAll(emojiRegex,"");
  print("EMOJI: $output");
}

最佳答案

你可以使用

String extractEmojis(String text) {
  RegExp rx = RegExp(r'[\p{Extended_Pictographic}\u{1F3FB}-\u{1F3FF}\u{1F9B0}-\u{1F9B3}]', unicode: true);
  return rx.allMatches(text).map((z) => z.group(0)).toList().join(""); 
}

void main() {
    print(extractEmojis("Hey everyone 🥺🥺🥺"));
}

输出:🥺🥺🥺

[\p{Extended_Pictographic}\u{1F3FB}-\u{1F3FF}\u{1F9B0}-\u{1F9B3}] 正则表达式取自 Why do Unicode emoji property escapes match numbers?它可以将表情符号正确匹配,浅色皮肤与深色皮肤模式字符以及红发与白发字符相匹配。

关于android - 如何从 Flutter 中的字符串中提取表情符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67848924/

相关文章:

java - 如何在运行时动态改变SeekBar的进度颜色?

android - 在 ionic 中构建 android 应用程序时如何解决问题?

javascript - 为什么此代码卡在 node.js - Javascript 上的错误?

php - 在 PHP 中解析 CSV 文件

dart - Flutter:右溢出 200 像素

android - 无法在华为设备上展开 RemoteViews : MediaSessionCompat and NotificationCompat. MediaStyle

android - 如何在 ANDROID 自定义 Listview Adapter 中使用 setonitemclicklistener

javascript - JS中如何使用正则表达式替换该字符串?

dart - 小部件不会在屏幕底部对齐

flutter - 如何在flutter_inappwebview中运行javascript