Nếu bạn không muốn sử dụng một thư viện bên ngoài, như một cách pythonic bạn chỉ có thể sử dụng biểu thức thông thường và re.findall()
với một regex thích hợp để tìm ra emojies:
In [74]: import re
In [75]: re.findall(r'[^\w\s,]', a_list[0])
Out[75]: ['', '', '', '', '', '']
Các biểu thức chính quy r'[^\w\s,]'
là một lớp ký tự phủ định khớp với bất kỳ ký tự nào không phải là một ký tự từ, khoảng trống hoặc dấu phẩy.
Như tôi đã đề cập trong nhận xét, văn bản thường chứa ký tự từ và dấu chấm câu sẽ dễ dàng xử lý theo cách này, đối với các trường hợp khác, bạn chỉ cần thêm chúng vào lớp ký tự theo cách thủ công. Lưu ý rằng vì bạn có thể chỉ định một loạt các ký tự trong lớp nhân vật, bạn thậm chí có thể làm cho nó ngắn hơn và linh hoạt hơn.
Giải pháp khác thay vì lớp nhân vật phủ định loại trừ các ký tự không phải biểu tượng cảm xúc sử dụng lớp nhân vật chấp nhận biểu tượng cảm xúc ([]
không có ^
). Vì có rất nhiều biểu tượng cảm xúc with different unicode values, bạn chỉ cần thêm các phạm vi vào lớp nhân vật. Nếu bạn muốn khớp nhiều biểu tượng cảm xúc hơn ở đây là một tham chiếu tốt chứa tất cả các biểu tượng cảm xúc chuẩn với phạm vi tương ứng cho các biểu tượng cảm xúc khác nhau http://apps.timwhitlock.info/emoji/tables/unicode:
kết động trong http://stackoverflow.com/q/26568722/674039 và http://stackoverflow.com/q/35404144/674039 – wim