Python の文字列から絵文字を削除する
この記事では、Python で指定された文字列から絵文字を削除する問題について説明します。
提供された Python コードでは、正規表現パターン「/[x{1F601}-x{1F64F}]/u」は Unicode 絵文字を正しく処理しません。その結果、「xf」で始まる文字列を検索すると、「無効な文字」エラーが発生します。
別のアプローチとして、より包括的な Unicode 正規表現パターンを使用することもできます。
<code class="python">emoji_pattern = re.compile("[" u"\U0001F600-\U0001F64F" # emoticons u"\U0001F300-\U0001F5FF" # symbols & pictographs u"\U0001F680-\U0001F6FF" # transport & map symbols u"\U0001F1E0-\U0001F1FF" # flags (iOS) "]+", flags=re.UNICODE)</code>
このパターンは、Unicode 文字範囲を指定することで、より広範囲の絵文字に一致します。
もう 1 つの重要な側面は、u'' を使用して Python 2 で Unicode 文字列を作成することです。さらに、入力データはテキストを使用して Unicode に変換する必要があります。 = data.decode('utf-8').
<code class="python">import re text = u'This dog \U0001f602' print(text) # with emoji emoji_pattern = re.compile("[" u"\U0001F600-\U0001F64F" # emoticons u"\U0001F300-\U0001F5FF" # symbols & pictographs u"\U0001F680-\U0001F6FF" # transport & map symbols u"\U0001F1E0-\U0001F1FF" # flags (iOS) "]+", flags=re.UNICODE) print(emoji_pattern.sub(r'', text)) # no emoji</code>
このコードは、絵文字を含む入力文字列 'text' を読み取ります。次に、「emoji_pattern」を適用して絵文字を識別し、削除します。結果の出力は、絵文字を含まない文字列です。
Unicode 標準は進化し続けているため、提供された正規表現パターンでは既存の絵文字をすべてキャプチャできない場合があることに注意してください。 Unicode 絵文字の包括的なリストについては、「絵文字と絵文字」を参照してください。
以上がPython で文字列から絵文字を効果的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。