Programing

파이썬으로 문자열에서 기호를 제거하는 방법은 무엇입니까?

crosscheck 2020. 11. 20. 08:39
반응형

파이썬으로 문자열에서 기호를 제거하는 방법은 무엇입니까?


이 질문에 이미 답변이 있습니다.

저는 Python과 RegEx를 모두 사용하는 초보자이며 기호를 가져와 공백으로 대체하는 문자열을 만드는 방법을 알고 싶습니다. 어떤 도움이라도 좋습니다.

예를 들면 :

how much for the maple syrup? $20.99? That's ricidulous!!!

으로:

how much for the maple syrup 20 99 That s ridiculous

한 가지 방법은 정규 표현식을 사용 하는 것입니다 .

>>> s = "how much for the maple syrup? $20.99? That's ridiculous!!!"
>>> re.sub(r'[^\w]', ' ', s)
'how much for the maple syrup   20 99  That s ridiculous   '
  • \w 영숫자 및 밑줄과 일치합니다.

  • [^\w]영숫자 또는 밑줄 아닌 모든 항목과 일치 합니다.


때로는 정규식을 파이썬으로 작성하는 것보다 알아내는 데 더 오래 걸립니다.

import string
s = "how much for the maple syrup? $20.99? That's ricidulous!!!"
for char in string.punctuation:
    s = s.replace(char, ' ')

다른 캐릭터가 필요한 경우 화이트리스트를 사용하거나 블랙리스트를 확장하도록 변경할 수 있습니다.

화이트리스트 샘플 :

whitelist = string.letters + string.digits + ' '
new_s = ''
for char in s:
    if char in whitelist:
        new_s += char
    else:
        new_s += ' '

generator-expression을 사용하는 샘플 화이트리스트 :

whitelist = string.letters + string.digits + ' '
new_s = ''.join(c for c in s if c in whitelist)

나는 종종 콘솔을 열고 개체 메서드에서 솔루션을 찾습니다. 꽤 자주 이미 거기에 있습니다.

>>> a = "hello ' s"
>>> dir(a)
[ (....) 'partition', 'replace' (....)]
>>> a.replace("'", " ")
'hello   s'

짧은 대답 : string.replace().

참고 URL : https://stackoverflow.com/questions/875968/how-to-remove-symbols-from-a-string-with-python

반응형