首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表情符号NSTextStorage

表情符号NSTextStorage
EN

Stack Overflow用户
提问于 2014-08-14 01:22:04
回答 1查看 374关注 0票数 3

此时一切正常,但如果用户尝试从键盘输入表情字符,则不会显示,因为我使用的是Helvetica字体。

我正在使用一个正则表达式来检测标签、提及和urls:

代码语言:javascript
复制
NSRegularExpression *iExpression = [NSRegularExpression regularExpressionWithPattern:pattern
                                                                             options:0
                                                                               error:NULL];

NSRange paragraphRange = [self.string paragraphRangeForRange: self.editedRange];        

[iExpression enumerateMatchesInString:self.string
                              options:0
                                range:paragraphRange
                           usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop)
{
    // Changing format of match
}

其中pattern是用于查找标签、urls或提及的有效正则表达式模式。

有没有检测表情符号的模式?我应该使用什么模式,我已经尝试了这个(和许多其他的)[^\\x{1F601}-\\x{1F64F}\r\n],但都没有成功。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-05-22 03:20:48

我不确定iOS编程正则表达式模式,但我确定的是,尽管您指向了正确的范围,但您排除了字符集,而不是通过在字符集[]定义中使用插入符号^来包括字符集。此外,我不认为你必须逃脱这些十六进制点和匹配CRs和LFs。

有一个完整的Emoji Unicode表,由它们对应的Unicode点here组成,我在下面的单行表达式中收集了这个表:

代码语言:javascript
复制
([0-9#][\x{20E3}])|[\x{00ae}|\x{00a9}|\x{203C}|\x{2047}|\x{2048}|\x{2049}|\x{3030}|\x{303D}|\x{2139}|\x{2122}|\x{3297}|\x{3299}][\x{FE00}-\x{FEFF}]?|[\x{2190}-\x{21FF}][\x{FE00}-\x{FEFF}]?|[\x{2300}-\x{23FF}][\x{FE00}-\x{FEFF}]?|[\x{2460}-\x{24FF}][\x{FE00}-\x{FEFF}]?|[\x{25A0}-\x{25FF}][\x{FE00}-\x{FEFF}]?|[\x{2600}-\x{27BF}][\x{FE00}-\x{FEFF}]?|[\x{2900}-\x{297F}][\x{FE00}-\x{FEFF}]?|[\x{2B00}-\x{2BF0}][\x{FE00}-\x{FEFF}]?|[\x{1F000}-\x{1F6FF}][\x{FE00}-\x{FEFF}]?

在PCRE风格中,必须通过在修饰符部分中键入UTF-16以匹配unicode字符来启用unicode标志,因此它应该是/ABOVE-EXPRESSION/u,但不幸的是,我不知道在您的特定情况下是如何实现的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25292418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档