[파이썬] 정규 표현식의 매칭 결과 문자열 정렬

정규 표현식은 문자열에서 패턴을 찾고 매칭하는 강력한 도구입니다. 그러나 때로는 매칭된 결과를 원하는 방식으로 정렬하는 것이 필요할 수 있습니다. 이 블로그 포스트에서는 Python에서 정규 표현식을 사용하여 매칭된 결과 문자열을 정렬하는 방법을 알아보겠습니다.


문자열 매칭과 정렬 기준

Python에서는 re 모듈을 사용하여 정규 표현식을 처리할 수 있습니다. re 모듈의 findall 함수를 사용하면 주어진 패턴에 대해 문자열에서 매칭된 모든 부분을 찾을 수 있습니다. 그러나 이렇게 매칭된 결과는 기본적으로 문자열의 순서대로 반환됩니다.

매칭된 문자열을 정렬하기 위해서는 정렬 기준을 사용해야 합니다. Python에서는 리스트를 정렬하는 sorted 함수를 사용할 수 있습니다. 이 함수는 key 매개변수를 활용하여 각 항목을 정렬할 기준을 지정할 수 있습니다.

매칭된 결과 문자열 정렬하기

다음은 Python에서 정규 표현식으로 매칭된 결과를 정렬하는 예제 코드입니다. 이 예제에서는 이메일 주소로 이루어진 문자열에서 도메인 부분만을 추출하여 정렬합니다.

import re

email_regex = r'[\w\.-]+@[\w\.-]+'

email_list = [
    "john@example.com",
    "jane@example.com",
    "smith@example.com"
]

# 매칭된 결과를 도메인으로 변환한 후 정렬
domains = sorted([re.search(email_regex, email).group().split('@')[1] for email in email_list])

print(domains)

위 예제에서는 정규 표현식 [\w\.-]+@[\w\.-]+를 사용하여 이메일 주소 패턴을 정의합니다. 그리고 search 메서드를 이용하여 문자열에서 이메일 주소를 찾고, group() 메서드로 매칭된 문자열을 얻습니다. 이메일 주소에서 도메인 부분만 추출하기 위해 split('@')[1]을 사용합니다.

마지막으로, sorted 함수를 사용하여 도메인 리스트를 정렬합니다. 결과는 다음과 같이 출력됩니다:

['example.com', 'example.com', 'example.com']

이 예제에서는 도메인이 모두 동일하지만, 실제 데이터에서는 다른 도메인이 포함된 이메일 주소들이 정렬될 것입니다.


정규 표현식의 매칭 결과 문자열을 정렬하는 것은 Python에서 간단하게 처리할 수 있습니다. re 모듈을 활용하여 정규 표현식을 통해 매칭된 결과를 추출하고, sorted 함수와 key 매개변수를 사용하여 원하는 방식으로 정렬할 수 있습니다. 이를 통해 텍스트 데이터에서 유용한 정보를 추출하고 분석하는 작업을 간편하게 수행할 수 있습니다.

이상으로 정규 표현식의 매칭 결과 문자열 정렬에 대해 알아보았습니다. 티핑한 내용이 도움이 되었기를 바랍니다!