작은 파이썬 함수를 만들어 중국어로 작성된 문자열에서 원하지 않는 요소를 제거했습니다. 이러한 원치 않는 요소는 처음에 앰퍼샌드를 사용합니다 (& 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
그래서 *이 * 일이 무엇을 : 당신의
SOMETHING
또는PERSON
는 영어 문자 또는 숫자를하는 경우, 당신은 함께 얻을 수있을 것? 대신에 당신은 무엇을 기대 했습니까? –또한, 예제에서 이름 오류가 발생합니다 :'split_the_copy'가 설정되지 않았습니다. my_string은 바이트 스트링이다; 텍스트를 인코딩하기 위해 어떤 코덱이 사용되었는지는 중요합니다. 아마도 우리는'print repr (my_string)'출력을 줄 수 있기 때문에 우리는 어떤 바이트가 포함되어 있는지 더 잘 판단 할 수있다. –
정말 미안 해요. 목표 정보 : 문자열은 원하지 않는 요소없이 문자열의 가장 긴 부분을 반환해야합니다. – fghersi