정규식(RegEx) 모듈로 문자열에서 숫자 추출하기
파이썬에서 문자열에 포함된 숫자를 추출할 때 가장 빠르고 효율적인 방법은 re(RegEx, 정규식) 모듈을 사용하는 것입니다. 먼저 모듈을 임포트합니다.
>>> import re
예제 문자열 준비
아래와 같이 정수와 실수가 함께 포함된 문자열이 있다고 가정해 보겠습니다.
>>> s = 'my age is 25. I have 55.50 percent marks and 9764135408 is my number'
findall() 함수로 패턴 매칭
findall() 함수는 주어진 정규식 패턴과 일치하는 모든 숫자를 리스트 형태로 반환합니다. 여기서 사용한 패턴 \d*\.?\d+는 소수점 앞뒤의 자릿수를 모두 인식하며, 각 부분의 의미는 다음과 같습니다.
\d*— 0개 이상의 숫자\.?— 소수점이 있거나 없거나\d+— 하나 이상의 숫자
>>> re.findall(r'\d*\.?\d+', s)
실행 결과
결과는 문자열 안의 모든 숫자를 담고 있는 리스트 객체입니다. 정수인 '25', 실수인 '55.50', 그리고 긴 전화번호 형태의 '9764135408'까지 모두 정확하게 추출된 것을 확인할 수 있습니다.
['25', '55.50', '9764135408']
이처럼 정규식 패턴 하나만으로 복잡한 문자열에서 원하는 숫자 데이터를 손쉽게 분리할 수 있어, 로그 분석이나 텍스트 전처리 작업에서 매우 유용하게 활용됩니다.