[Python] 문자열에서 숫자만 제거, 3가지 방법
July 19, 2024
문자열에서 숫자만 찾아서 제거하는 방법에 대해서 알아보겠습니다.
1. 정규표현식을 이용한 방법
re.sub(pattern, repl, text)는 text에서 pattern과 일치하는 문자열을 모두 찾고 repl로 변경합니다.
이것을 이용하여 아래와 같이 숫자만 찾는 패턴으로 숫자를 모두 찾고, 빈문자열로 변환하여 제거할 수 있습니다.
- 정규표현식
\d
는 숫자 1개를 의미,+
는 1개 이상의 문자를 의미 re.sub(r'\d+', '', text)
: text에서 1개 이상의 숫자들이 연속된 문자열을 찾고''
로 변경
import re
text = "Hello12345World6789"
result = re.sub(r'\d+', '', text)
print(result)
Output:
HelloWorld
2. 반복문을 이용한 방법
아래와 같이, 문자열의 각 문자를 반복 순회하면서, 숫자가 아닌 문자만 모으고, join()
으로 합치면 숫자만 제거된 문자열을 만들 수 있습니다.
''.join(iterable)
: iterable의 요소들을 하나의 문자열로 연결하는데, 요소들 사이에''
를 추가
text = "Hello12345World6789"
result = ''.join(char for char in text if not char.isdigit())
print(result)
Output:
HelloWorld
3. str.maketrans()를 이용한 방법
str.maketrans()는 문자열을 다른 문자열로 변환할 때, 어떻게 변환할지에 대한 테이블을 만듭니다.
str.maketrans(a, b, c)
에서 c의 인자는 삭제할 문자들을 의미str.maketrans('', '', '0123456789')
:0123456789
의 문자들을 문자열에서 삭제하는 테이블 생성text.translate(translation_table)
: 테이블을 참조하여 문자열을 변환
text = "Hello12345World6789"
translation_table = str.maketrans('', '', '0123456789')
result = text.translate(translation_table)
print(result)
Output:
HelloWorld