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

Python 정규식으로 텍스트에서 부동소수점 숫자 추출하는 방법

텍스트나 문자열에서 부동소수점 숫자(실수)를 추출해야 하는 경우, Python의 re 모듈과 정규식을 활용하면 간단하게 처리할 수 있습니다. 이 글에서는 re.findall() 함수를 사용하여 문자열에 포함된 소수와 정수를 한 번에 추출하는 방법을 살펴보겠습니다.

정규식 패턴 이해하기

사용할 패턴은 [-+]?\d*\.\d+|\d+ 입니다.

  • [-+]? : 부호(+ 또는 -)가 있을 수도 있고 없을 수도 있습니다.
  • \d* : 소수점 앞에 오는 0개 이상의 숫자를 매칭합니다.
  • \.\d+ : 소수점(.)과 그 뒤에 오는 하나 이상의 숫자를 매칭합니다.
  • |\d+ : 소수가 아닌 일반 정수도 함께 매칭할 수 있도록 합니다.

예제 코드

import re

s = "Sound Level: -11.7 db or 15.2 or 8 db"
result = re.findall(r"[-+]?\d*\.\d+|\d+", s)
print(result)

위 코드는 문자열 s에서 음수 소수(-11.7), 양수 소수(15.2), 그리고 정수(8)까지 모두 찾아내어 리스트 형태로 반환합니다. 참고로 print(result)처럼 괄호를 사용한 출력문은 Python 3 문법입니다.

실행 결과

코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

['-11.7', '15.2', '8']

마무리

이처럼 re.findall()과 적절한 정규식 패턴을 조합하면 텍스트 속의 부동소수점 숫자와 정수를 손쉽게 추출할 수 있습니다. 데이터 전처리나 로그 분석 등 다양한 상황에서 유용하게 활용할 수 있으니, 필요에 따라 패턴을 수정하여 사용해 보시기 바랍니다.