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

파이썬 정규식으로 CamelCase 문자열에 공백 넣어 단어 분리하기

이 글에서 해결하려는 문제는 CamelCase(카멜케이스)로 작성된 문자열을 개별 단어로 분리하는 것입니다. 정규식을 활용하면 주어진 문자열에서 모든 대문자를 찾아 그 앞에 공백을 삽입하는 방식으로 간단하게 처리할 수 있습니다. 이때 파이썬 re 모듈의 sub() 메서드를 사용합니다.

예를 들어 다음과 같은 입력 문자열이 있다고 가정해 보겠습니다.

AReallyLongVariableNameInJava

원하는 출력 결과는 다음과 같습니다.

A Really Long Variable Name In Java

정규식 [A-Z]를 사용하면 문자열 내의 모든 대문자를 찾을 수 있으며, 찾은 대문자를 '공백 + 해당 대문자' 형태로 치환하면 됩니다. 파이썬의 re 패키지를 이용한 구현 예시는 다음과 같습니다.

예제 코드

import re

# 그룹으로 모든 대문자를 캡처하고, 공백을 앞에 붙인 \1로 치환
# strip()으로 첫 글자 앞에 생긴 불필요한 공백 제거
separated_str = re.sub("([A-Z])", " \\1", "AReallyLongVariableNameInJava").strip()
print(separated_str)

동작 원리

  • ([A-Z]) : 대문자 하나를 캡처 그룹으로 지정합니다.
  • " \\1" : 공백 한 칸과 캡처된 첫 번째 그룹(대문자)으로 치환합니다.
  • .strip() : 치환 과정에서 첫 글자 앞에 추가된 공백을 제거합니다.

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

A Really Long Variable Name In Java