我在运行以下代码时遇到了一些问题,这些代码是用来检查表情符号的。我老是遇到一个错误,无法解决这个问题。在
代码如下:
import re
patterns = r"""
(?:
[<>]?
[:;=8] # eyes
[\-o\*\']? # optional nose
[\)\]\(\[dDpP/\:\}\{@\|\\] # mouth
|
[\)\]\(\[dDpP/\:\}\{@\|\\] # mouth
[\-o\*\']? # optional nose
[:;=8] # eyes
[<>]?
)
"""
regexes= [re.compile(p) for p in patterns]
text = 'hi there! my name is SimonSchus and here is an emoticon :-)'
for regex in regexes:
print('Looking for ', regex," in ",(regex.pattern, text))
if regex.search(text):
print('found a match!')
else:
print('no match')
我错了
^{pr2}$显然,括号/括号的某个地方有个错误。然而,我用一个反斜杠逃脱了我能想到的一切,但仍然无法解决。你知道我哪里出错了吗?我觉得这个错误是在regex表达式本身,经过一点调试,但无法确定到底是什么。在
西蒙。在
归功于克里斯托弗·波茨(http://sentiment.christopherpotts.net/code-data/happyfuntokenizing.py),我从他那里找到了表情符号表达式。在
…正在尝试将字符串中的每个字母编译为自己的正则表达式。因此,当}。在
p
是(
时,它期望(并且找不到)一个结束的)
;同样地,[
和{您的
^{pr2}$patterns
只是一个字符串,而不是它们的列表。因此:如果需要regex列表,}。在
patterns
将被定义为一个列表:patterns=[ ... ]
,而不是{相关问题 更多 >
编程相关推荐