IT

휴대폰 번호 정규표현식 및 Django에서 정규표현식 필터

bepuri 2022. 8. 2. 09:38
728x90
^01\d-\d{4}-\d{4}$

휴대폰번호에 -가 필수로 들어가길 원하면 위와 같이 정규표현식을 작성하고
-가 선택적으로 들어가길 원하면 아래와 같이 정규표현식을 작성하면 된다.

^01\d-?\d{3,4}-?\d{4}$

풀어서 설명하자면

01\d

위 수식은 01로 시작하고 01뒤에
\d 즉 1자리 숫자가 나온다는 뜻이다.

-?\d{3,4}

-는 뒤에 ?를 붙였기 때문에 나올수도 있고 안나올수도 있는것이다.
그리고 \d{3,4}는 숫자가 3~4자리 나온다는 말

-?\d{4}

마지막 내용은
두번째 수식과 거의 동일하다.
-는 선택적으로 나올 수 있는것이고
숫자 3~4자리가 아니라 4자리가 나오는 경우만 매칭된다.

이 정규표현식을 django queryset 필터에서도 사용할 수 있다.
내 경우는 아래와 같이 사용했었다.

Sample.objects.filter(detail_content__iregex=r'01\d-?\d{3,4}-?\d{4}')

iregex로 검색하면 해당 정규표현식을 만족하는 문자열이 있는 오브젝트들이 포함되어 쿼리셋이 만들어진다.

728x90