小さなPython関数を作成して、中国語で書かれた文字列から望ましくない要素を削除しました。 これらの望ましくない要素は、先頭にアンパサンドを表示します(& Something)。 この関数は正規表現を使用してそれらを見つけ出し、それらを削除し、望ましくない要素のない文字列の最も長い部分を返しますが、何らかの理由で期待どおりに機能しません。 私は他の言語やアルファベットで文字列の関数をテストし、期待どおりに動作します。出力だ正規表現が中国語のテキストで使用されていない場合
# -*- coding: utf-8 -*-
import re
def clean_sentence(my_text):
split_the_text = re.split(r'([&].*?\s)', my_text)
longest_sentence = max(split_the_text, key=len)
return longest_sentence
my_string = "一个神奇的鸭子飞在与&SOMETHING然后唱支歌给&PERSON"
print clean_sentence(my_string)
:
õ©Çõ©¬þÑ×ÕÑçþÜäÚ©¡Õ¡ÉÚú×Õ£¿õ©Ä&SOMETHINGþäÂÕÉÄÕö▒µö»µ¡îþ╗Ö&PERSON
だから何*は起こるのでしょうか?代わりに何が起こると思いますか? –
また、あなたの例は名前エラーを投げます: 'split_the_copy'が設定されていません。 'my_string'はバイトストリングです。テキストをエンコードするためにどのコーデックが使用されたかは重要です。おそらく 'print repr(my_string)'出力を与えることができるので、そこに含まれるバイトをよりよく判断することができます。 –
本当にすみません、私はそれを修正しました! ゴールについて:文字列は、望ましくない要素のない文字列の最長部分を返さなければなりません。 – fghersi