期望
输入 "ABCD😊😭E"
输出 ["ABCD", "😊😭", "E"]
实现
List<String> splitEmoji(String text) {
final List<String> out = [];
final pattern = RegExp(
r'(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])');
bool curIsEmoji = false;
String curText = '';
for (var element in text.characters) {
bool isEmoji = pattern.allMatches(element).isNotEmpty;
if (curIsEmoji == isEmoji) {
curText += element;
} else {
if (curText != '') out.add(curText);
curText = element;
curIsEmoji = isEmoji;
}
}
if (curText != '') out.add(curText);
return out;
}
Flutter 拆分字符串中的emoji
最新推荐文章于 2024-05-08 12:14:16 发布