Ste*_*fan 9 ruby regex unicode emoji
注意:这个问题在不支持包含的表情符号的系统上看起来很奇怪.
这是如何从字符串中删除表情符号的后续问题.
我想构建一个正则表达式,匹配可以在Mac OS X/iOS中输入的所有表情符号.
明显的Unicode块涵盖了大多数,但不是所有这些表情符号:
维基百科提供了OS X Mountain Lion和iOS 6上Apple Color Emoji中可用的所有符号的编译列表,这看起来是一个很好的起点:(稍微更新)
people = '????????'
nature = '????????'
objects = '?????????????'
places = '?????????'
symbols = '1??2??3??4??5??6??7??8??9??0??#??????????????????????????????????????????????????????????????????????????????????????©?®?™??????????????????????????????????????????????'
emoji = people + nature + objects + places + symbols # all emoji combined
Run Code Online (Sandbox Code Playgroud)
大多数字符都有一个代码点,转换它们很容易:
但有些字符是"使用两个 Unicode值编码":
有些甚至有3个代码点:
(变奏选择器16表示"表情符号样式")
如何将此列表拆分为字符(不拆分组合字符),找到它们的代码点,最后构建匹配它们的正则表达式?
正则表达式不必尊重较大块中的"缺失"字符,即如果完全覆盖上面提到的4个Unicode块,则可以.
(如果我没有得到任何答案,我会自己回答这个问题,但也许有一个简单的解决方案)
即将推出的Unicode 表情符号数据文件将对此有所帮助。目前这些仍然是草稿,但它们仍然可能对您有所帮助。
\n\n通过解析http://www.unicode.org/Public/emoji/1.0/emoji-data.txt你可以很容易地得到 Unicode 标准中所有表情符号的列表。(请注意,其中一些表情符号由多个代码点组成。)一旦有了这样的列表,\xe2\x80\x99 将其转换为正则表达式就很简单了。
\n\n这里\xe2\x80\x99s是一个JavaScript版本: https: //github.com/mathiasbynens/emoji-regex/blob/master/index.js这里\xe2\x80\x99s是根据以下数据生成它的脚本emoji-data.txt: https: //github.com/mathiasbynens/emoji-regex/blob/master/scripts/generate-regex.js
| 归档时间: |
|
| 查看次数: |
3202 次 |
| 最近记录: |