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

정규 표현식은 많은 프로그래밍 언어에서 사용되는 강력한 도구입니다. 이를 사용하면 특정 패턴에 매칭되는 문자열을 찾고 추출할 수 있습니다. 그러나 때로는 매칭된 문자열을 더 정교하게 정제하거나 조작해야 할 때가 있습니다.

Python에서는 내장된 re 모듈을 사용하여 정규 표현식을 처리할 수 있습니다. 이 모듈은 매칭된 문자열을 정규화하기 위해 여러 함수와 기능을 제공합니다.

문자열 정규화 예제

아래의 예제에서는 주어진 텍스트에서 URL을 추출하고 그것들을 정규화합니다. 정규화는 모든 URL을 동일한 형식으로 변환하는 과정을 의미합니다. 예를 들어, http://www.example.comhttps://example.comexample.com으로 정규화됩니다.

import re

text = "Visit my website at http://www.example.com or https://example.com"
urls = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', text)

normalized_urls = []

for url in urls:
    normalized_url = re.sub(r'(http[s]?://)(www\.)?', '', url)
    normalized_urls.append(normalized_url)

print(normalized_urls)

위의 코드에서는 re.findall() 함수를 사용하여 주어진 텍스트에 포함된 모든 URL을 추출하였습니다. 이후, 추출된 각 URL에 대해 re.sub() 함수를 사용하여 http:// 또는 https://www.을 삭제하였습니다.

출력은 다음과 같을 것입니다:

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

정규화된 URL의 목록을 얻을 수 있습니다.

결론

정규 표현식을 사용하여 매칭된 문자열을 추출하는 것만이 아니라, 원하는 형식으로 조작할 수도 있습니다. Python의 re 모듈을 사용하여 정규 표현식으로 매칭된 문자열을 정규화하고 필요에 따라 수정하는 것은 매우 유용한 작업입니다.

이 예제는 단순히 URL을 정규화하는 데만 사용되었지만, 정규 표현식을 사용하여 다양한 작업을 수행할 수 있습니다. 정규 표현식을 활용해 복잡한 문자열 처리 작업을 수행하고, 효율적이고 간결한 코드를 작성해보세요!