>백엔드 개발 >파이썬 튜토리얼 >공백과 마침표를 유지하면서 비ASCII 문자를 선택적으로 제거하는 방법은 무엇입니까?

공백과 마침표를 유지하면서 비ASCII 문자를 선택적으로 제거하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-19 20:32:02945검색

How to Selectively Remove Non-ASCII Characters Preserving Spaces and Periods?

비ASCII 문자의 선택적 제거

텍스트 데이터 작업 시 특정 기호를 유지하면서 비ASCII 문자를 제거해야 하는 경우가 많습니다. 공백이나 마침표 같은 거죠. 기본 필터링 방법을 사용하면 ASCII가 아닌 문자를 모두 제거할 수 있지만 일부 경우에는 바람직하지 않을 수 있습니다.

다음 코드를 고려해 보겠습니다.

<code class="python">def onlyascii(char):
    if ord(char) < 48 or ord(char) > 127: return ''
    else: return char</code>

이 코드는 ASCII 값이 있는 모든 문자를 제거합니다. 48보다 작거나 127보다 크면 ASCII가 아닌 문자의 텍스트를 효과적으로 제거합니다. 그러나 공백(ASCII 32)과 마침표(ASCII 46)도 제거합니다.

공백과 마침표를 유지하면서 ASCII가 아닌 문자를 선택적으로 제거하려면 Python의 string.printable 모듈을 활용할 수 있습니다.

<code class="python">import string
printable = set(string.printable)
filtered_data = filter(lambda x: x in printable, data)</code>

string.printable 세트에는 숫자, 문자, 기호, 공백 및 마침표를 포함하여 시스템에서 인쇄 가능한 모든 문자가 포함되어 있습니다. 이 세트를 필터로 사용하면 문자열에서 인쇄할 수 없는 모든 문자를 제거할 수 있습니다.

예를 들어 "somex00string.withx15 funnycharacters"라는 문자열이 있는 경우:

<code class="python">s = "some\x00string. with\x15 funny characters"
''.join(filter(lambda x: x in printable, s))</code>

결과는 다음과 같습니다.

'somestring. with funny characters'

이 방법은 공백과 마침표를 유지하면서 ASCII가 아닌 문자를 효과적으로 제거하여 추가 처리를 위한 깨끗한 문자열을 제공합니다.

위 내용은 공백과 마침표를 유지하면서 비ASCII 문자를 선택적으로 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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