请考虑以下列表:
a_list = [' me así, bla es se ds ']
Run Code Online (Sandbox Code Playgroud)
如何在新列表中提取内部的所有表情符号a_list
?:
new_lis = [' ']
Run Code Online (Sandbox Code Playgroud)
我试图使用正则表达式,但我没有所有可能的表情符号编码.
如果您运行x = 'y' 'z'
在Python中,你得到x
设置'yz'
,这意味着当Python看到彼此相邻的多个字符串某种字符串连接的发生.
但这是什么样的串联?它实际上正在运行'y' + 'z'
还是正在运行''.join('y','z')
或其他什么?
我在Python中发现了这个用于删除表情符号的代码,但它无效.你能帮忙解决其他问题吗?
我已经观察到我的所有emjois都开始了\xf
但是当我尝试搜索时str.startswith("\xf")
我得到了无效的字符错误.
emoji_pattern = r'/[x{1F601}-x{1F64F}]/u'
re.sub(emoji_pattern, '', word)
Run Code Online (Sandbox Code Playgroud)
这是错误:
Traceback (most recent call last):
File "test.py", line 52, in <module>
re.sub(emoji_pattern,'',word)
File "/usr/lib/python2.7/re.py", line 151, in sub
return _compile(pattern, flags).sub(repl, string, count)
File "/usr/lib/python2.7/re.py", line 244, in _compile
raise error, v # invalid expression
sre_constants.error: bad character range
Run Code Online (Sandbox Code Playgroud)
列表中的每个项目都可以是单词 ['This', 'dog', '\xf0\x9f\x98\x82', 'https://t.co/5N86jYipOI']
更新:我使用了其他代码:
emoji_pattern=re.compile(ur" " " [\U0001F600-\U0001F64F] # emoticons \
|\
[\U0001F300-\U0001F5FF] # symbols & pictographs\
|\
[\U0001F680-\U0001F6FF] # transport & map symbols\
|\
[\U0001F1E0-\U0001F1FF] …
Run Code Online (Sandbox Code Playgroud) 这是一个小例子:
reg = ur"((?P<initial>[+\-])(?P<rest>.+?))$"
Run Code Online (Sandbox Code Playgroud)
(在这两种情况下文件都有-*- coding: utf-8 -*-
)
在Python 2中:
re.match(reg, u"hello").groupdict()
# => {u'initial': u'\ud83d', u'rest': u'\udc4dhello'}
# unicode why must you do this
Run Code Online (Sandbox Code Playgroud)
然而,在Python 3中:
re.match(reg, "hello").groupdict()
# => {'initial': '', 'rest': 'hello'}
Run Code Online (Sandbox Code Playgroud)
上述行为是100%完美,但切换到Python 3目前不是一个选项.将3的结果复制到2中的最佳方法是什么,这适用于窄版和宽版Python?似乎是以"\ ud83d\udc4d"格式来找我,这就是让这个变得棘手的原因.
我想确定我的vector的哪些元素包含表情符号:
x = c('', 'no', '', '', 'no', '', '?', '??')
x
# [1] "\U0001f602" "no" "\U0001f379" "\U0001f600" "no" "\U0001f61b" "?" "??"
Run Code Online (Sandbox Code Playgroud)
相关帖子只涵盖其他语言,因为大部分都是指专业图书馆,我无法想出一种翻译成R的方法:
第二个看起来很有希望,但唉(不是通过提供固定perl = TRUE
):
x[grepl('[\u{1F600}-\u{1F6FF}]', x)]
Run Code Online (Sandbox Code Playgroud)
错误:无效\ u {xxxx}序列(第1行)
类似的问题来自其他问题.我们怎样才能匹配R中的表情符号?
我需要将(在Python中)一个4字节的char转换为其他字符.这是将其插入到我的UTF-8 mysql数据库没有得到一个错误,如:"不正确的字符串值:在第1行'\ XF0\x9F\X94\x8E’列'线’"
通过向mysql插入4字节unicode引发的警告显示这样做:
>>> import re
>>> highpoints = re.compile(u'[\U00010000-\U0010ffff]')
>>> example = u'Some example text with a sleepy face: \U0001f62a'
>>> highpoints.sub(u'', example)
u'Some example text with a sleepy face: '
Run Code Online (Sandbox Code Playgroud)
但是,我得到了与评论中的用户相同的错误,"...字符范围很差.."这显然是因为我的Python是UCS-2(而不是UCS-4)版本.但后来我不知道该怎么做呢?