Tôi đã tìm thấy mã này trong Python để xóa biểu tượng cảm xúc nhưng nó không hoạt động. Bạn có thể trợ giúp với các mã khác hoặc sửa lỗi này không?
Tôi đã quan sát thấy tất cả các emjois của mình bắt đầu bằng _______________ nhưng khi tôi cố gắng tìm kiếm _______________ thì tôi gặp lỗi ký tự không hợp lệ
emoji_pattern = r'/[x{1F601}-x{1F64F}]/u' re.sub(emoji_pattern, '', word)Đây là lỗi
Traceback (most recent call last): File "test.py", line 52, in 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 rangeMỗi mục trong danh sách có thể là một từ ['This', 'dog', '\xf0\x9f\x98\x82', '//t.co/5N86jYipOI']
CẬP NHẬT. Tôi đã sử dụng mã khác này
emoji_pattern=re.compile(ur" " " [\U0001F600-\U0001F64F] # emoticons \ |\ [\U0001F300-\U0001F5FF] # symbols & pictographs\ |\ [\U0001F680-\U0001F6FF] # transport & map symbols\ |\ [\U0001F1E0-\U0001F1FF] # flags (iOS)\ " " ", re.VERBOSE) emoji_pattern.sub('', word)Nhưng điều này vẫn không xóa biểu tượng cảm xúc và hiển thị chúng. Bất kỳ manh mối tại sao lại như vậy?
Tôi đang cập nhật câu trả lời của mình cho câu hỏi này bởi @jfs vì câu trả lời trước của tôi không tính đến các tiêu chuẩn Unicode khác như tiếng Latinh, tiếng Hy Lạp, v.v. StackOverFlow không cho phép tôi xóa câu trả lời trước đó của mình do đó tôi đang cập nhật nó để khớp với câu trả lời được chấp nhận nhất cho câu hỏi
def remove_emoji(self, string): emoji_pattern = re.compile("[" u"\U0001F600-\U0001F64F" # emoticons u"\U0001F300-\U0001F5FF" # symbols & pictographs u"\U0001F680-\U0001F6FF" # transport & map symbols u"\U0001F1E0-\U0001F1FF" # flags (iOS) u"\U00002702-\U000027B0" u"\U000024C2-\U0001F251" "]+", flags=re.UNICODE) return emoji_pattern.sub(r'', string)