2014-09-28 2 views
2

나는 다음과 같은 URLPATTERN 있습니다단일 문자 매개 변수 문제

url(r'exp/users/(?P<userid>\w.+)/$', 'myapp.views.users_view_by_id', name='users_id'), 

사용자 ID는 한 자리 숫자 (예를 들어, '1') 내가 404 페이지를 찾을 수 없음 얻을 수 있지만,이 그것은 하나 이상의 경우 페이지가 예상대로 응답합니다 (예 : '10').

그래서 '../exp/users/10/' 잘 작동하지만 (?P<userid>\d+)를 사용 후, 하나 개 이상의 숫자를 일치 시키려면 '.../exp/users/1/'은 404

답변

3

정규 표현식에 .이 추가되었습니다.

\w.+은 "하나의 영숫자, 임의의 문자 중 하나 이상"을 의미합니다. 원하는 것은 "\w+"이며 "하나 이상의 영숫자"를 의미합니다. 편집

리터럴을 포함 할 경우

"." 받아 들일 수있는 문자에서 대괄호를 사용하여 클래스를 정의하십시오.

(?P<userid>[\w.]+) 
+0

일부 ID는 다음과 같습니다. (예 : 'user.1234'). 두 시나리오를 모두 처리하려면 어떻게해야합니까? – greenafrican

0

를 반환합니다.

현재 정규 표현식에는 \w '과 일치하는 문자가 하나 있어야하고 .+과 일치하는 문자가 하나 이상 있어야합니다.