2011-04-04 43 views
0

我有一個要求來匹配所有傳入的請求,並根據請求URL過濾掉某些請求。目前我正在嘗試使用像/app/webapp/users/*/resource/path這樣的正則表達式來匹配/app/webapp/users/<some_user_id>/resource/path。但是沒有任何傳入的請求似乎與正則表達式匹配。我試圖使用的正則表達式有什麼問題? (我使用String類的匹配方法進行比較)。Java - 正則表達式幫助

回答

5

/*/看起來更像是一個比水珠正則表達式給我。這將匹配任意數量的斜槓,而我希望您希望它匹配斜線之間的任意數量的字符。如果您只想匹配單個級別(即/ app/webapp/users/foo/bar/baz/resource/path不匹配),請嘗試使用/.+/,或者可能使用/[^/]+/

編輯:正如約阿希姆所說,另一種只匹配單一級別的方法是使用/.+?/使其成爲「不情願」匹配。

+0

他可能希望'/.+/'(或者更復雜的'/ [^ /] + /')避免在他指定的兩個字符之間匹配額外的斜線。 – 2011-04-04 07:23:24

+1

@Joachim:這不正是我所說的嗎?我不確定你的建議有什麼變化。 – 2011-04-04 07:25:52

+0

糟糕,我確定我輸入了'/.+?/'作爲第一個表達式。這就是我的意思。 – 2011-04-04 08:03:38