[파이썬] 정규 표현식의 매칭 그룹 명칭 지정

정규 표현식은 문자열에서 특정 패턴을 찾고 추출하는 강력한 도구입니다. 매칭 그룹을 사용하면 정규 표현식에서 여러 패턴을 지정하고, 각각의 패턴을 개별적으로 추출할 수 있습니다. 이번 포스트에서는 매칭 그룹에 이름을 지정하는 방법과 이를 활용하여 패턴을 추출하는 방법을 알아보겠습니다.

매칭 그룹에 이름 지정하기

Python에서는 (?P<name>) 구문을 사용하여 매칭 그룹에 이름을 지정할 수 있습니다. <name>에는 원하는 이름을 입력하면 됩니다. 이름은 유효한 파이썬 변수 이름이어야 합니다.

만약 이메일 주소에서 사용자 이름과 도메인을 추출하고 싶다면 다음과 같은 정규 표현식을 사용할 수 있습니다.

import re

email = "john.doe@example.com"
pattern = r"(?P<username>\w+)\.(?P<domain>\w+)@(?P<extension>\w+\.\w+)"

match = re.match(pattern, email)

위의 코드에서는 매칭 그룹 이름으로 username, domain, extension을 사용하였습니다.

매칭 그룹 추출하기

매칭 그룹에 이름을 지정하면 match.groupdict() 메서드를 사용하여 각 매칭 그룹을 딕셔너리 형태로 추출할 수 있습니다.

import re

email = "john.doe@example.com"
pattern = r"(?P<username>\w+)\.(?P<domain>\w+)@(?P<extension>\w+\.\w+)"

match = re.match(pattern, email)

if match:
    username = match.groupdict()["username"]
    domain = match.groupdict()["domain"]
    extension = match.groupdict()["extension"]

    print("Username:", username)
    print("Domain:", domain)
    print("Extension:", extension)

위의 코드에서 match.groupdict()는 다음과 같은 결과를 반환합니다.

{'username': 'john', 'domain': 'doe', 'extension': 'example.com'}

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

Username: john
Domain: doe
Extension: example.com

매칭 그룹에 이름을 지정하면 추출된 값을 이름으로 쉽게 접근할 수 있습니다. 이를 통해 추출한 패턴을 가공하거나 다른 용도로 활용할 수 있습니다.

위의 예제는 이메일 주소에서 사용자 이름, 도메인, 확장자를 추출하는 간단한 예시였지만, 이름 지정된 매칭 그룹을 사용하여 더 복잡한 패턴을 추출할 수도 있습니다.

정규 표현식의 매칭 그룹에 이름을 지정하면 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다. 매칭 그룹에 의미 있는 이름을 부여하여 패턴 추출 작업을 더욱 쉽고 간편하게 처리할 수 있습니다.

정규 표현식에 대한 이해도와 활용도를 향상시키기 위해 매칭 그룹에 이름을 지정하는 방법을 익혀보세요. 이를 통해 정규 표현식을 보다 유연하고 효율적으로 활용할 수 있을 것입니다.