문자열에서 백분율(%) 기호를 추출해야 하는 경우, 파이썬의 정규표현식 모듈인 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 메서드를 조합하면 복잡한 반복문 없이도 문자열 내에서 원하는 패턴을 손쉽게 추출할 수 있습니다. 텍스트 데이터 전처리, 로그 분석, 웹 스크래핑 결과 정리 등 다양한 상황에서 유용하게 활용할 수 있으니, 정규표현식 패턴 작성법과 함께 익혀두면 큰 도움이 됩니다.