[python] 정규표현식을 이용한 도메인 형식인 문자열 검증
개요
이번 포스트에서는 Python의 re
모듈을 활용하여 문자열이 도메인 형식에 맞는지 검증하는 방법에 대해 알아보겠습니다. 도메인 형식은 일반적으로 example.com
과 같이 서브도메인, 도메인 이름, 확장자로 이루어진 문자열입니다. 이런 형식을 갖춘 문자열을 검증하기 위해 정규표현식을 사용할 수 있습니다.
정규표현식 정의
도메인 형식을 검증하기 위해 다음과 같은 정규표현식을 사용할 수 있습니다.
import re
pattern = re.compile(r'^[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)*\.[a-zA-Z]{2,}$')
위의 정규표현식은 다음과 같은 패턴을 갖습니다.
^[a-zA-Z0-9]+
: 문자 또는 숫자로 시작(\.[a-zA-Z0-9]+)*
: 영문자 또는 숫자로 이루어진 서브도메인이 0개 이상 존재할 수 있음 (서브도메인은 점으로 구분)\.[a-zA-Z]{2,}$
: 최소 2글자 이상의 도메인이 존재해야 하며, 마지막에 점과 영문자만 포함되어야 함
문자열 검증
정규표현식을 사용하여 문자열을 검증하기 위해 다음과 같은 함수를 정의할 수 있습니다.
def is_valid_domain(domain):
return True if pattern.match(domain) else False
위의 함수는 주어진 도메인이 정규표현식 패턴과 일치하는지 확인하고, 일치하는 경우 True
를 반환하고 일치하지 않는 경우 False
를 반환합니다.
사용 예시
이제 해당 함수를 사용하여 문자열을 검증해보겠습니다.
valid_domain = "example.com"
invalid_domain = "invalid#$domain"
print(is_valid_domain(valid_domain)) # Output: True
print(is_valid_domain(invalid_domain)) # Output: False
위의 예시에서 valid_domain
은 도메인 형식에 맞으므로 True
가 출력되지만, invalid_domain
은 도메인 형식에 맞지 않으므로 False
가 출력됩니다.
마치며
이번 포스트에서는 Python의 정규표현식을 사용하여 도메인 형식인 문자열을 검증하는 방법을 소개했습니다. 정규표현식을 활용하면 간편하게 문자열을 검증할 수 있으며, 도메인 형식 외에 다양한 형식의 문자열을 검증할 수 있다는 점을 기억해두시기 바랍니다.