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로!
복잡한 텍스트 처리나 템플릿 조작에서 매우 유용하게 활용됩니다.
'파이썬 > 기초 프로그래밍' 카테고리의 다른 글
"로직"이란 정확히 무슨 뜻일까? (0) | 2025.06.10 |
---|---|
네임 맹글링(Name Mangling)이란? (0) | 2025.06.06 |
디버깅이란? (0) | 2025.06.06 |
raise와 KeyError 간단 정리 & 예제 (0) | 2025.06.06 |
Python 함수에서 ... (Ellipsis)의 의미는? (0) | 2025.05.14 |