gpt4 book ai didi

ios - 检查给定字符是否是 Objective-C 中的表情符号

转载 作者:行者123 更新时间:2023-11-28 20:54:21 27 4
gpt4 key购买 nike

我有一个 NSString 并想检查某个索引处的给定字符是否是表情符号。

但是,似乎没有任何可靠的方法来创建表情符号字符的 NSCharacterSet,因为它们会随着 iOS 更新而变化。许多可用的解决方案都依赖于 Swift 特性,例如 UnicodeScalar。所有解决方案似乎都涉及对表情符号的代码点值进行硬编码。

因此,是否可以完全检查表情符号?

最佳答案

这个问题有点复杂,因为 Unicode 很复杂,但是你可以使用 NSRegularExpression 来做这个:

    NSString *s = @"where's the emoji 😎 ?";
NSRegularExpression *r = [NSRegularExpression regularExpressionWithPattern:@"\\p{Emoji_Presentation}" options:0 error:NULL];
NSRange range = [r rangeOfFirstMatchInString:s options:0 range:NSMakeRange(0, s.length)];
NSLog(@"location %lu length %lu", (unsigned long)range.location, (unsigned long)range.length);

产生:

2019-01-16 18:07:42.629 emoji[50405:6837084] location 18 length 2

我正在使用 \p{Unicode property name} 模式来匹配具有指定 Unicode 属性的字符。我正在使用属性 Emoji_Presentation 来获取默认情况下显示为表情符号的那些字符。您应该查看 Unicode® Technical Standard #51 — Annex A: Emoji Properties and Data Files以及 A.1 中链接的数据文件,以确定您真正关心的属性。

关于ios - 检查给定字符是否是 Objective-C 中的表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54225891/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com