Python - 문자열에서 특정 문자 제거, 3가지 방법

파이썬에서 문자열 안의 특정 문자를 제거하는 방법을 소개합니다.

1. replace()로 특정 문자 제거

replace(A, B)는 문자열의 A를 모두 B로 변경합니다. 이 함수를 이용하여 특정 문자를 ''으로 변경하여 제거할 수 있습니다.

str = "Hello, World, Python"

new_str = str.replace(',', '')
print(new_str)

Output:

Hello World Python

만약 특정 문자를 모두 삭제하지 않고, 처음에 발견되는 1개만 삭제하고 싶다면, 아래 예제와 같이 3번째 인자로 삭제할 회수를 전달하시면 됩니다.

str = "Hello, World, Python"

new_str = str.replace(',', '', 1)
print(new_str)

Output:

Hello World, Python

또한 아래와 같이 문자뿐만 아니라 문자열도 삭제할 수 있습니다.

str = "Hello, World, Python"

new_str = str.replace('World,', '')
print(new_str)

Output:

Hello,  Python

2. 정규표현식과 sub()로 특정 문자 제거

sub(regex, replacement, str)는 문자열 str에서 regex 패턴을 찾고 해당하는 부분을 replacement로 변경합니다. 이것을 이용하여 특정 문자를 삭제할 수 있습니다.

아래 예제는 문자열 ,""로 변경하여 삭제합니다.

import re

str = "Hello, World, Python"
result = re.sub(",", "", str)
print(result)

Output:

Hello World Python

아래 예제는 문자열 ,HePy를 모두 제거합니다. |는 OR의 의미로, 여러 패턴을 추가할 때 사용합니다.

import re

str = "Hello, World, Python"
result = re.sub(",|He|Py", "", str)
print(result)

Output:

llo World thon

3. for loop로 특정 문자 제거

반복문을 이용하여 직접 특정 문자를 삭제하는 코드를 구현할 수 있습니다. 문자열을 for char in str 처럼 반복문으로 반복하면, 각각의 문자마다 순회합니다.

아래 예제는 순회 중인 문자가 HWP 중에 하나면 replace를 통해서 그 문자를 제거합니다. 이렇게 모든 문자에 대해서 처리를 하면 원하는 문자열이 모두 삭제된 것을 확인할 수 있습니다.

str = "Hello, World, Python"
result = str
for char in str:
    if char in "HWP":
        result = result.replace(char, '')

print(result)

Output:

ello, orld, ython
Loading script...
codechachaCopyright ©2019 codechacha