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

Python – 정규표현식으로 문자열에서 백분율(%) 추출하기

문자열에서 백분율(%) 기호를 추출해야 하는 경우, 파이썬의 정규표현식 모듈인 re와 그 안의 findall 메서드를 활용하면 간단하게 해결할 수 있습니다.

예제 코드

다음은 문자열에서 백분율을 추출하는 과정을 보여주는 예제입니다.

import re

my_string = 'Python is % always fun % to learn % and teach'

print("The list is : ")
print(my_string)

my_result = re.findall(r'\d*%', my_string)

print("The resultant list is : ")
print(my_result)

실행 결과

The list is :
Python is % always fun % to learn % and teach
The resultant list is :
['%', '%', '%']

코드 설명

  • re 모듈을 임포트하여 환경에 불러옵니다.

  • 백분율 기호가 포함된 문자열을 정의한 뒤 콘솔에 출력합니다.

  • re 패키지의 findall 메서드를 사용해 추출할 패턴(\d*%)을 정의하고, 처리할 문자열을 인자로 전달합니다.

  • 반환된 결과를 변수에 할당합니다.

  • 해당 변수를 화면에 출력하여 최종 결과를 확인합니다.

패턴 의미 살펴보기

여기서 사용된 정규표현식 \d*%는 다음과 같은 의미를 가집니다.

  • \d* : 숫자(digit)가 0개 이상 연속으로 나타나는 부분

  • % : 그 뒤에 이어지는 백분율 기호

즉, 이 패턴은 앞에 숫자가 붙어 있든 없든 '%' 기호를 모두 찾아냅니다. 문자열에 "50%", "3.5%"처럼 실제 수치가 포함되어 있다면 해당 값까지 함께 추출됩니다.

숫자가 포함된 백분율 추출 예제

실무에서는 '%' 앞에 구체적인 수치가 있는 경우가 많습니다. 아래 예제처럼 패턴을 조금만 수정하면 숫자를 포함한 백분율을 한 번에 추출할 수 있습니다.

import re

my_string = '성장률은 12% 상승했으며, 할인율은 30%입니다.'

result = re.findall(r'\d+\.?\d*%', my_string)

print(result)

실행 결과

['12%', '30%']

마무리

이처럼 파이썬의 re 모듈과 findall 메서드를 조합하면 복잡한 반복문 없이도 문자열 내에서 원하는 패턴을 손쉽게 추출할 수 있습니다. 텍스트 데이터 전처리, 로그 분석, 웹 스크래핑 결과 정리 등 다양한 상황에서 유용하게 활용할 수 있으니, 정규표현식 패턴 작성법과 함께 익혀두면 큰 도움이 됩니다.