[직장인이 알아두면 좋은 파이썬] 정규표현식을 사용해서 금액(1000원) 중 숫자만 뽑아내기
만약 직장에서 보고서나 문서에 나온 금액 찾아야 하는 일이 생긴다면 어떻게 해야 될까요?? 처음부터 끝까지 읽어보면서 찾거나 '원'이라는 글자를 검색하면서 찾을 수도 있습니다. 이런 노가다 작업은 정규표현식 전방탐색을 사용하면 쉽게 해결할 수 있습니다.
철수는 1000원을 가지고 있고 영희는 2000원을 가지고 있습니다. 두 사람은 3000원으로 원숭이 인형을 2개 샀습니다.
위에 예문에서 금액만 뽑아 내기 위해서는 어떻게 해야 될까요?? 긍정형 전방탐색을 사용하면 됩니다.
긍정형 전방탐색
긍정형 전방탐색이란 어떠한 기준 앞에 해당 패턴이 일치하면 리턴하는 방법입니다. 그래서 원을 기준으로 정하기 위해
(?=원) 이라고 하면 원 앞에 있는 패턴만을 추출할수 있습니다. 금액을 추출하기 위해서 \d+을 사용해 숫자를 찾는 패턴을 사용합니다.
다른 식으로 설명하면 1000원이라는 것을 추출하기위한 패턴은 \d+원 입니다. 근데 여기서 원이라는 글자를 빼고 추출하고자 할때 사용합니다. (?=원)으로 하면 원은 리턴되지 않습니다.
따라서, 긍정형 전방탐색을 이해할때는 그냥 내가 추출하고자 하는 패턴이 있는데 그중 맨 마지막 패턴을 리턴하고 싶지 않을때 사용한다고 생각하시면 됩니다.
전체코드
import re
print("="*100)
s = """
철수는 1000원을 가지고 있고 영희는 2000원을 가지고 있습니다. 두 사람은 3000원으로 원숭이 인형을 2개 샀습니다.
"""
p = re.compile("\d+(?=원)")
m = p.findall(s)
print(m)
print("="*100)
결과
['1000', '2000', '3000']
'프로그래밍사업 > 사이드 프로젝트' 카테고리의 다른 글
[교대근무 관리프로그램] 파이썬으로 교대근무 스케쥴표 엑셀로 저장하기 (0) | 2022.10.03 |
---|---|
[교대근무 관리프로그램] 파이썬으로 교대근무 관리 시스템 만들어 보기 (0) | 2022.10.03 |
[직장인이 알아두면 좋은 파이썬] 정규표현식으로 전화번호 뒷자리를 ####으로 바꾸기 (0) | 2022.10.02 |
[직장인이 알아두면 좋은 파이썬] openpyxl로 pandas 데이터 프레임 만들기 (0) | 2022.09.25 |
[GCP,SSH] 맥북과 터미널(iTerm2)로 Google Cloud Platform SSH 접속하기 -- config 파일 작성으로 편하게 접속 (0) | 2022.08.08 |
댓글