Python의 문자열에서 인쇄할 수 없는 문자를 제거하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-10-22 06:55:02
원래의
427명이 탐색했습니다.

How to Strip Non-Printable Characters from Strings in Python?

Python의 문자열에서 인쇄할 수 없는 문자 제거

Perl에서 s/[^[:print:]]// g 정규식은 문자열에서 인쇄할 수 없는 모든 문자를 효과적으로 제거합니다. 그러나 Python에는 동등한 POSIX 정규식 클래스가 없으므로 동일한 작업을 수행하는 방법을 궁금해하는 사람들이 있습니다.

유니코드 이해

문제는 유니코드 문자를 처리하는 데 있습니다. , string.printable 메소드가 의도치 않게 이를 제거할 수 있기 때문입니다.

사용자 정의 문자 클래스 구축

이 문제를 해결하기 위해 유니코드 데이터를 사용하여 사용자 정의 문자 클래스를 생성할 수 있습니다. 기준 치수. unicodedata.category() 함수는 문자 범주에 대한 통찰력을 제공합니다. 예를 들어, 유니코드 문자 집합에서 해당 범주를 필터링하여 제어 문자 및 대리 문자와 같은 인쇄할 수 없는 문자를 나타내기 위해 control_characters라는 문자 클래스를 정의할 수 있습니다.

<code class="python">import unicodedata
import re

categories = {'Cc', 'Cf', 'Cs'}  # Include desired categories here
control_chars = ''.join(chr(i) for i in range(sys.maxunicode) if unicodedata.category(chr(i)) in categories)
control_char_re = re.compile('[%s]' % re.escape(control_chars))</code>
로그인 후 복사

이 접근 방식은 이전 접근 방식에 비해 향상된 효율성을 제공합니다. 문자열을 반복합니다.

<code class="python">def remove_control_chars(s):
    return control_char_re.sub('', s)</code>
로그인 후 복사

추가 사용자 정의

추가 범주(예: 개인용 문자) 필터링이 필요한 시나리오의 경우 문자 클래스를 확장할 수 있습니다.

<code class="python">categories.add('Co')  # Add private-use characters
# Rebuild the character class and regex</code>
로그인 후 복사

이 접근 방식을 활용하면 Python의 유니코드 문자열에서 인쇄할 수 없는 문자를 효과적으로 제거하여 기본 사용 사례와 사용자 정의 사용 사례를 모두 충족할 수 있습니다.

위 내용은 Python의 문자열에서 인쇄할 수 없는 문자를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!