2012-10-24 4 views
0

URL 경로와 일치하는 정규식 스 니펫을 만들려고합니다.URL 라우팅 정규식

기본적으로이 경로가 /users/:id 인 경우 /users/100과 일치해야하지만 일치하지 않으려면 /users/100/edit이 필요합니다. users/(.*)/을하지만 때문에 욕심으로 경기 중 관계없이 사용자 ID 후 무엇의 일치하는 것 :

이것은 내가 지금 사용하고 있습니다 것입니다. /edit 또는 다른 경로가있는 경우 경기를 '위반하는'방법이 필요합니다.

나는 Regex NOT 연산자를 살펴 보았지만 운이 없었습니다.

어떤 조언이 필요합니까?

답변

1

숫자 만 수집하려고합니까?

, 당신은 users/(\d*)/

을 사용할 수 있습니다 그리고이 사람은 당신이 /까지 모든 것을 수집하고 싶었 경우 어떻게 할 것입니다, 그리고 그것은 NOT 사용 ^/users/[^/]*$

+0

내 사용을 위해 약간을 수정했다 : '^/사용자/[^ /] */$'하지만 내가 알 필요가 정확히 무엇을, 감사합니다! :) –

0

당신은 부정적 예측 사용할 수 있습니다

users/(.*)/(?!edit)

그러나 항상 슬래시가 필요합니다. 어쩌면 더 나은 솔루션은 다음과 같습니다

users/(\d+)(?!/edit)

자세한 내용은 this post를 참조하십시오.