我必须从推文中清除👉👌💦✨
等特殊字符。为了做到这一点,我遵循了这个策略(我使用Python 3):
Ã
变为\xc3\
; b'
和b"
(在字符串的开头)并添加'
或"
(在字符串末尾)在转换过程之后通过Python; 这是我的代码:
import re
tweet = 'b"[/Very seldom~ will someone enter your life] to question\xc3\xa2\xe2\x82\xac\xc2\xa6 "'
#encoding to 'utf8'
tweet_en = tweet.encode('utf8')
#converting to string
tweet_str = str(tweet_en)
#eliminating the b' and b" at the begining of the string:
tweet_nob = re.sub(r'^(b\'b\")', '', tweet_str)
#deleting the single or double quotation marks at the end of the string:
tweet_noendquot = re.sub(r'\'\"$', '', tweet_nob)
#deleting hex
tweet_regex = re.sub(r'\\x[a-f0-9]{2,}', '', tweet_noendquot)
print('this is tweet_regex: ', tweet_regex)
最终输出为:[/Very seldom~ will someone enter your life] to question "
(我仍然无法删除最终的"
)。我想知道是否有一种更好,更直接的方法来清理Twitter数据中的特殊字符。任何帮助将不胜感激。
答案 0 :(得分:3)
如果你只是在寻找ASCII字符,我认为这样可以正常工作:
initial_str = 'Some text 👉👌💦✨ and some more text'
clean_str = ''.join([c for c in initial_str if ord(c) < 128])
print(clean_str) # Some text and some more text
您可以执行ord(c) in range()
,并为其提供一系列您希望保留的文字(可能包括表情符号)。