Python의 문자열에서 인쇄할 수 없는 문자 제거
질문:
Perl에서는, 인쇄할 수 없는 문자는 정규식 s/[^[:print:]]//g를 사용하여 제거할 수 있습니다. 그러나 Python에서는 [:print:] 클래스가 지원되지 않습니다. ASCII와 유니코드 문자를 모두 처리하는 Python에서 유사한 기능을 어떻게 얻을 수 있습니까?
답변:
인쇄 가능성 감지에 대한 Python의 제한으로 인해 자체 문자를 구성할 수 있습니다. unicodedata 모듈을 사용하는 클래스입니다.
<code class="python">import unicodedata, re, itertools, sys # Generate a list of all characters all_chars = (chr(i) for i in range(sys.maxunicode)) # Category of control characters categories = {'Cc'} control_chars = ''.join(c for c in all_chars if unicodedata.category(c) in categories) # Escape the control characters for regular expression matching control_char_re = re.compile('[%s]' % re.escape(control_chars)) # Function to remove control characters from a string def remove_control_chars(s): return control_char_re.sub('', s)</code>
Python 2의 경우:
<code class="python">import unicodedata, re, sys # Generate a list of all characters all_chars = (unichr(i) for i in xrange(sys.maxunicode)) # Category of control characters categories = {'Cc'} control_chars = ''.join(c for c in all_chars if unicodedata.category(c) in categories) # Escape the control characters for regular expression matching control_char_re = re.compile('[%s]' % re.escape(control_chars)) # Function to remove control characters from a string def remove_control_chars(s): return control_char_re.sub('', s)</code>
확장 옵션:
의 경우 보다 포괄적인 제거를 위해서는 추가 범주를 포함할 수 있지만 성능에 영향을 미칠 수 있습니다.
문자 범주 및 개수:
위 내용은 Python 문자열에서 인쇄할 수 없는 문자를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!