Python

[Python] re - 정규표현식 일치 부분을 대문자로 변환하기

비번변경 2023. 9. 6. 01:19

개요

정규표현식과 일치한 문자열은 대문자로 변환하고자 한다.

정규표현식에 대소문자 변환 기능을 가진 메타문자 \u, \U, \l, \L 등이 존재하지만, Python에서는 유니코드 패턴으로 인식되어 동작하지 않는 것 같다.

대안을 적어둔다.

 

 

방법

검색할 정규식 패턴에 그룹화를 사용하여, lamdba를 이용해 해당 그룹에 대해 upper 함수를 적용하면 된다. 굳이 lambda를 사용하지 않고 대문자 변환 함수를 정의하여 re.sub의 repl 매개변수로 넘겨도 된다. 

아래는 소문자로 시작하거나, 공백과 소문자 조합인 문자를 대문자로 변환하는 코드이다.

import re

def Jaden_Case(s):
    return re.sub(r'(^|\b)([a-z])', lambda x: x.group().upper(), s.lower())

 

 

참고 문서

https://pynative.com/python-regex-replace-re-sub/

2022.08.29 - [정규 표현식] Group