>  기사  >  백엔드 개발  >  Python에서 ASCII가 아닌 문자를 공백으로 바꾸는 방법은 무엇입니까?

Python에서 ASCII가 아닌 문자를 공백으로 바꾸는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-01 16:34:02467검색

How to Replace Non-ASCII Characters with Spaces in Python?

Python에서 ASCII가 아닌 문자를 공백으로 바꾸기

Python에서 ASCII가 아닌 문자를 공백으로 바꾸는 작업은 간단해 보일 수 있지만 문자 조작에 자주 사용되는 내장 기능은 간단한 솔루션을 즉시 제공하지 못할 수도 있습니다. 이 목표를 효과적으로 달성하기 위한 과제와 대안적 접근 방식을 살펴보겠습니다.

현재 솔루션

질문에는 두 가지 기존 접근 방식이 제시됩니다.

  • remove_non_ascii_1()은 ASCII가 아닌 문자를 모두 제거합니다.
  • remove_non_ascii_2()는 ASCII가 아닌 문자를 공백으로 바꾸고 코드 포인트가 더 큰 문자에는 여러 공백을 사용합니다.

단일 공백 ​​대체

ASCII가 아닌 모든 문자를 단일 공백으로 바꾸도록 구체적으로 묻는 질문입니다. 이를 달성하려면 remove_non_ascii_1() 함수를 수정해야 합니다.

<code class="python">def remove_non_ascii_1(text):
    return ''.join([i if ord(i) < 128 else ' ' for i in text])</code>

이 업데이트된 함수에서는 조건식을 사용하여 ASCII가 아닌 문자를 단일 공백으로 바꿉니다. 그런 다음 ''.join() 표현식은 수정된 문자를 단일 문자열로 연결합니다.

정규 표현식 접근 방식

remove_non_ascii_2()는 단일 공백 ​​대체에 맞게 조정될 수도 있습니다.

<code class="python">re.sub(r'[^\x00-\x7F]+', ' ', text)</code>
여기서 ' ' 수정자는 연속된 비ASCII 문자가 단일 공백으로 대체되도록 대괄호 안에 추가됩니다.

참고: 이러한 함수는 유니코드 문자열에서 작동합니다. 바이트 문자열로 작업하는 경우 유니코드 문자를 먼저 디코딩해야 합니다(예: 유니코드(텍스트, 'utf-8')).

위 내용은 Python에서 ASCII가 아닌 문자를 공백으로 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.