파이썬에서 정규 표현식(regular expression)을 활용하면 문자열에서 숫자가 아닌 문자를 간단하게 추출할 수 있습니다. 정규 표현식에서 \D는 "숫자가 아닌 모든 문자"를 의미하는 특수 패턴으로, 이를 re.findall() 함수와 함께 사용하면 한 번의 호출로 원하는 결과를 얻을 수 있습니다.
예제
import re foo = 'Mo4zam5Bi6QuE7' match = re.findall(r'\D', foo) print(match)
출력
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
['M', 'o', 'z', 'a', 'm', 'B', 'i', 'Q', 'u', 'E']
코드 설명
re.findall(r'\D', foo): 입력 문자열에서 패턴\D와 일치하는 모든 문자를 찾아 리스트 형태로 반환합니다.\D는[^0-9]와 동일한 의미로, 숫자(0~9)를 제외한 영문자, 특수문자, 공백 등 모든 문자에 해당합니다.- 반대로 숫자만 추출하고 싶다면 소문자
\d패턴을 사용하면 됩니다.
참고로 위 예제는 파이썬 3 문법(print(match)) 기준으로 작성되었으며, 파이썬 2에서는 print match처럼 괄호 없이 사용해야 합니다.