티스토리 뷰

숫자, 한글, 영어 등, 문자열에 다양한 문자들이 섞여있는 경우, 숫자만 제거하는 방법에 대해서 알아보겠습니다.

 

isnumeric()으로 숫자 제거

isnumeric()은 문자가 숫자인 경우, true를 리턴합니다.

 

이것을 이용하여, 아래와 같이 for문으로 모든 문자에 대해서 isnumeric()을 호출하고, 숫자가 아닌 경우만 join()으로 하나의 문자열로 연결할 수 있습니다. 즉, 이런 연산으로 문자열에서 숫자만 제거된 새로운 문자열이 만들어집니다.

text = "Hello123World456Python789"
result = ''.join(char for char in text if not char.isnumeric())
print(result) # HelloWorldPython

 

정규표현식으로 숫자 제거

정규표현식 패턴으로 문자열에서 숫자만 찾고 제거할 수 있습니다.

re.sub(pattern, repl, string)은 string 문자열에서 pattern에 대한 모든 문자열을 찾고 repl로 변경합니다.

아래 예제에서 패턴 '\d'는 숫자를 의미하며, 숫자 패턴을 찾아서 빈 문자열('')로 변경하여 제거합니다.

import re

text = "Hello123World456Python789"
result = re.sub(r'\d', '', text)
print(result)  # HelloWorldPython

 

maketrans()로 숫자 제거

str.maketrans()로 문자열 제거에 대한 테이블을 생성하고, translate()로 적용하여 문자열에서 숫자만 제거할 수 있습니다.

text = "Hello123World456Python789"
translation_table = str.maketrans('', '', '1234567890')
result = text.translate(translation_table)
print(result)  # HelloWorldPython