파이썬의 re 모듈을 사용하면 정규 표현식으로 문자열에서 숫자만 손쉽게 찾아낼 수 있습니다. 아래 예제들은 주어진 문자열에서 숫자만 일치시키는 대표적인 두 가지 방법을 보여줍니다.
re.search()로 첫 번째 숫자 그룹 찾기
re.search()는 패턴과 일치하는 첫 번째 부분을 찾아 매치 객체를 반환합니다. 패턴 \d+는 하나 이상의 연속된 숫자를 의미합니다.
import re m = re.search(r'\d+', '5Need47forSpeed 2') print(m)
실행 결과
<re.Match object; span=(0, 1), match='5'>
매치 객체에는 일치한 문자열뿐 아니라 시작·끝 위치(span) 정보도 함께 담겨 있습니다. 실제 일치한 문자열이 필요하다면 m.group()을 호출하면 됩니다.
re.findall()로 모든 숫자 추출하기
문자열에 포함된 모든 숫자를 한 번에 가져오려면 re.findall()을 사용합니다. 이 함수는 일치하는 모든 부분을 리스트 형태로 반환합니다.
import re m = re.findall(r'\d', '5Need47forSpeed 2') print(m)
실행 결과
['5', '4', '7', '2']
패턴을 \d(숫자 한 글자) 대신 \d+로 바꾸면 연속된 숫자들이 하나의 요소로 묶여 반환됩니다.
m = re.findall(r'\d+', '5Need47forSpeed 2') print(m) # ['5', '47', '2']
핵심 정리
\d: 숫자 한 글자와 일치\d+: 하나 이상의 연속된 숫자와 일치re.search(): 첫 번째 일치 항목을 매치 객체로 반환re.findall(): 모든 일치 항목을 리스트로 반환