본문으로 건너뛰기

Python 문자열에서 특정 문자 제거

replace()와 정규표현식을 사용하여 문자열에서 특정 문자를 제거할 수 있습니다.

1. replace()를 이용하여 특정 문자 제거

replace(old, new)는 문자열에서 old에 해당하는 문자열을 new로 변경합니다. replace()를 이용하면, 어떤 문자 또는 문자열을 ''로 변환하여 제거할 수 있습니다.

아래 예제는 문자열에서 ','를 모두 ''로 변환하여 제거하는 예제입니다.

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

Output:

Hello World

만약 특정 문자를 제거하고, 대신 다른 문자를 추가로 입력하고 싶다면 아래와 같이 문자열을 변환하시면 됩니다.

str = "Hello, World"
new_str = str.replace('World', 'Python')
print(new_str)

Output:

Hello, Python

2. 정규표현식(Regex)을 이용하여 특정 문자 제거

sub(regex, replacement, str)는 문자열 str에서 regex의 패턴을 찾고, 패턴과 일치하는 내용을 replacement로 변경하는 함수입니다. replace()와 같은 방식으로, 특정 문자 또는 문자열을 ''으로 변환하여 삭제할 수 있습니다.

아래 예제는 문자열에서 ,''으로 변환하여 삭제하는 예제입니다.

import re

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

Output:

Hello World Python

위의 예제는 정규표현식의 기능을 사용하지 않고 문자열 매칭만 사용하였는데요, 정규표현식을 기능을 조금 더 사용하면 여러 패턴의 문자열을 찾아서 제거하는 것도 구현할 수 있습니다.

아래 예제는 ello, orld, ython에 해당하는 문자열을 찾고 제거합니다.

import re

str = "Hello, World, Python"
result = re.sub("ello|orld|ython", "", str)
print(result)

Output:

H, W, P

3. 알파벳, 숫자를 제외한, 다른 특수 문자들은 모두 제거

아래 예제는 알파벳, 숫자만 남기고 특수문자, 다른 언어의 문자들은 모두 제거하는 예제입니다. (정규표현식 패턴에서 [^a-zA-Z0-9]는 알파벳 및 숫자가 아닌 문자들을 의미합니다.)

import re

str = "Hello!@$% World, Python 12345 파이썬"
result = re.sub("[^a-zA-Z0-9]", "", str)
print(result)

Output:

HelloWorldPython12345