파이썬/기초 프로그래밍

re.sub(패턴, lambda, 문자열) — 조건부 치환의 강력한 도구!

Data Jun 2025. 6. 7. 11:08

Python에서 문자열을 치환할 때 가장 많이 사용하는 함수는 바로 re.sub()입니다.

기본 형태는 다음과 같습니다:

re.sub(패턴, 바꿀_문자열, 대상_문자열)

하지만 더 복잡한 치환을 하고 싶다면?
💡 lambda 함수를 두 번째 인자로 활용하면 됩니다!

 

언제 lambda를 쓰나요?

정적인 문자열이 아니라, 찾은 패턴에 따라 동적으로 바꿔야 할 때 사용합니다.

예를 들어, 문자열 안의 숫자에 1씩 더하고 싶다면:

import re

text = "apple1 banana2 cherry3"
result = re.sub(r'\d+', lambda m: str(int(m.group()) + 1), text)
print(result)  # 👉 apple2 banana3 cherry4

해석:

  • \d+: 숫자 하나 이상을 찾음
  • lambda m: str(int(m.group()) + 1): 찾은 숫자를 정수로 바꿔서 +1 한 뒤 다시 문자열로 변환
  • 결과적으로 숫자만 1씩 증가된 새 문자열 반환

 

또 다른 예시: 대문자로 변환

text = "hello world from chatgpt"
result = re.sub(r'\b\w+', lambda m: m.group().upper(), text)
print(result)  # 👉 HELLO WORLD FROM CHATGPT

 

  • 단어 단위(\b\w+)로 찾아서
  • lambda를 통해 해당 단어를 .upper()로 대문자화

 

요약

🎯 정적인 치환은 그냥 문자열,
동적인 치환은 lambda로!

복잡한 텍스트 처리나 템플릿 조작에서 매우 유용하게 활용됩니다.