2012-10-24 65 views
0

我想創建一個匹配URL路由的正則表達式片段。URL路由正則表達式

基本上,如果我有這條路線/users/:id我想要/users/100匹配,但是/users/100/edit不匹配。

這就是我現在使用的:users/(.*)/,但由於貪婪的匹配,它匹配,無論用戶標識後面是什麼。如果路線末端有/edit或別的東西,我需要一些「打破」比賽的方式。

我看了一下正則表達式NOT運算符,但沒有運氣。

有什麼建議嗎?

回答

1

你只是想收集數字?

你可以使用users/(\d*)/

而這一次,你會怎麼做,如果你想收集的一切,直到/,它使用一個NOT,^/users/[^/]*$

+0

不得不稍微修改一下我的用法:'^/users/[^ /] */$'但這正是我需要知道的,謝謝! :) –

0

可以使用負前瞻:

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

但是這總是需要一個斜線。也許一個更好的解決辦法是:

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

更多信息請參見this post