Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 정규 표현식으로 문자열에서 숫자만 추출하는 방법

파이썬의 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(): 모든 일치 항목을 리스트로 반환