[英]Python regex: find words and emoticons
我想在一條推文和包含單詞,短語和表情符號的字符串列表之間找到匹配項。 這是我的代碼:
words = [':)','and i','sleeping','... :)','! <3','facebook'] regex = re.compile(r'\\b%s\\b|(:\\(|:\\))+' % '\\\\b|\\\\b'.join(words), flags=re.IGNORECASE)
我不斷收到此錯誤:
error: unbalanced parenthesis
顯然,代碼存在問題,無法匹配表情符號。 知道如何解決嗎?
我嘗試了以下操作,並停止拋出錯誤:
words = [':\)','and i','sleeping','... :\)','! <3','facebook']
re模塊具有函數escape
功能,可以正確地轉義單詞,因此您可以使用
words = map(re.escape, [':)','and i','sleeping','... :)','! <3','facebook'])
請注意,將單詞邊界與未以實際單詞字符開頭或結尾的單詞一起使用時,可能無法按預期工作。
words
具有所有必需的格式后,請重新使用(
和)
作為特殊字符。 這就要求您使用\\(
或\\)
以避免將它們解釋為特殊字符,而應將其解釋為ASCII字符40和41。由於您不了解@Nicarus的意思,因此需要使用以下命令:
words = [':\)','and i','sleeping','... :\)','! <3','facebook']
注意:我只是說出來,因為對於所有可能要批評這一點的人來說,這似乎不是學校的作業。 另外,在堆棧溢出之前,請查看文檔。 這說明了一切。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.