본문 바로가기

정규표현식

Django urlpatterns 정규 표현식 기초

정규표현식

from django.urls import re_path


urlpatterns = [
    path('blog/view/<int:id>/', views.blog),
	re_path(r'.', views.blogPattern),
    re_path(r'^./$', views.blogPattern),
    re_path(r'^keyboards?/$', views.pattern),
	re_path(r'^keyboards*/$', views.pattern),
    re_path(r'^(?:aa|bb)/$', views.pattern),
    re_path(r'^(?P<id>[0-9]+)/$', views.pattern),
    re_path(r'^([0-9]{4})/$', views.pattern),
	re_path(r'^([0-9]{2,4})/$', views.pattern),
]

raw_string (원시 문자열) 사용해야 한다.

r'^/$'

. : 모든 문자와 일치 시킨다.

^ : 캐럿 기호 오른쪽의 표현식으로 시작하는 문자열과 일치

$ : 달러 기호 왼쪽의 표현식으로 끝나는 문자열과 일치

? : ? 기호의 왼쪽 표현식으로 끝나는 문자열이 0, 1번 사용하는 경우 일치

* : * 기호 왼쪽 표현식으로 끝나는 문자열이 0번 이상 반복하는 경우 일치

+ : + 기호 왼쪽 표현식으로 끝나는 문자열이 1번 이상 반복하는 경우 일치

| : 파이프 기호 왼쪽 또는 오른쪽 표현식과 일치

[] : 대괄호 안의 범위의 문자와 일치, [a-z], [A-Z], [0-9], [a-zA-z0-9], [a-zA-z0-9][a-zA-z0-9], [가-힣]

{} : 중괄호 안의 범위만큼 패턴 매치 횟수를 한정한다. {1,4} -> 자리수 1,2,3,4 가능

(?:패턴식) : 그룹화

(패턴식) : 그룹화, 패턴에 매치된 문자열을 저장하여 views 함수의 인자로 사용, views.py의 지정된 함수에서 request 이외의 인자를 지정해줘야 한다.

(?P<name>패턴식) : 그룹화, 패턴에 매치된 문자열을 저장하여 views 함수의 [name] 인자로 사용, views.py의 지정된 함수에서 request 이외의 인자 [name]이라는 이름으로 지정해줘야 한다.