【发布时间】:2016-01-12 20:55:25
【问题描述】:
假设我有以下字符串:DATA = "????????????????????????"。
我想获取一个数组或列表,其中每个表情符号作为一个元素,例如[????,????,????????,????????]。
然而,问题在于表情符号的长度各不相同。所以len(u'????')是1,而len(u'????????')是2。
那么我将如何拆分我的DATA?我已经看到它是用 JavaScript 完成的,但无法找到用 Python 完成它的方法 (How can I split a string containing emoji into an array?)。
【问题讨论】:
-
@EugeneSoldatov 我以前也看到过这个问题,但它实际上只显示了如何正确计算表情符号的数量。
-
只是不使用 len() 函数:re.findall(u'[\U0001f600-\U0001f650]', s)
-
那行不通。表情符号??????例如实际上是????和????的组合。所以
re.findall的结果是 ['????', '????'] 而不是 ['????????']。 -
第 3 方
regex模块可以使用 Unicode 代码点类别进行搜索,因此您可以将表情符号及其修饰符与正确的表达式保持在一起。但是,您示例中的代码点是在 Unicode 8.0 中定义的,并且也需要 Python 3.5。