본문 바로가기

Language/Python

영문 대문자와 숫자를 분리해주는 Python함수

728x90

개요

한 학생, 고객, 승객을 고유 값으로 구분하는 ID를 부여 할 때 예를들어 A반에 10번이라고 하면 ID를 A10으로 부여 함으로써 A반에 10번이라는 것을 ID로 표현을 합니다. A반의 10번 뿐만 아니라 A객실에 10번 고객 이런식으로 흔하게 쓰이는 형태 입니다.

 

여기에서 ID A10, A6, B4 등의 ID를 가지고 해당 학생이 어떤 반에 속하는지만 추출하고 싶은 경우 아래 함수를 통하면 

A6 => A, A10 => A 이렇게 알파벳만 나옵니다.

import re

def get_class(room_code):
    match = re.match(r"([A-Z]+)([0-9]+)", room_code, re.I)
    if match:
        items = match.groups()
        return items[0]
    else:
        return room_code

 

설명을 해보자면
re.match()를 이용하면 특정 text에서 해당 패턴에 해당하는 string(문자열)을 추출 할 수 있습니다.

([A-Z]+)([0-9]+)

위 정규식 패턴은 영문 대문자와 숫자를 구분해줍니다

items = match.groups()

match.groups()를 이용하면 패턴에 일치하는 문자열을 list로 리턴해줍니다

return items[0]

A16, B8, C20 등의 패턴은 맨 앞에 알파벳이 나오므로 0번째 값은 알파벳이 나오게 되어있습니다.

728x90
블로그 주인장입니다. 원하시는 정보는 얻으셨나요? 이 포스트에서 추가로 필요한 정보가 있으시면 여기에 남겨주세요.